0

I want to implement the following scenario with the help of SIP protocol:

  • I call to the number 12345678990
  • the phone is picked up (--> 200 ok is received and ACK is sent back)
  • I dial a number extension 23456#

I have already implemented the first part and second parts in jain. How can I realize the third one?

What I tried:

  • I set the telURL attribute postDial as 23456# but in this case I couldn't get through proxy-authorization and makee a call

  • I tired to write both parts as one number with delimeters * and # and without delimeter att all.

What can I also do?

UPD: I discovered that

  • problem occures because of the sambol #

  • with symbol # the proxy auth. responce is sent but isn't processed. at least I don't see a log message that pocessResponce() method is working.

user2957954
  • 1,221
  • 2
  • 18
  • 39
  • You have to figure out how to authenticate with the 3rd party. You need user/pass, the authentication method, some ip rules etc and only then you can write some code to make it work. The answer is entiraly in coordinating with the remote machine. – Vladimir Ralev Jan 16 '15 at 14:53
  • The question is rather: how can I technically realize dialing 23456# after having received "200 ok". Do I need another INVITE or I can set a special attribute or what? – user2957954 Jan 16 '15 at 15:00
  • Yes, you need a new INVITE with the number set in the To header (in general), however it is again up to the 3rd party how to dial correctly, some providers will use tel uri, other sip url with some realm or something completely custom. – Vladimir Ralev Jan 16 '15 at 15:20
  • I thought that the postDial parameter should serve for such purposes: "Post Dial - Phone numbers can also contain a post-dial sequence. This is what is often used with voice mailboxes and other services that are controlled by dialing numbers from your phone keypad while the call is in progress." – user2957954 Jan 16 '15 at 15:34
  • It depends on the remote party, which method they accept. They may only support DTMF or something custom. The only robust way to do it is to simulate it like a user would dial it. All other shortcuts are provider-dependant. You should talk to them. – Vladimir Ralev Jan 16 '15 at 16:31

2 Answers2

0

For these purposes I just used SIP INFO messages: each single message for one symbol of "23456#"-string.

user2957954
  • 1,221
  • 2
  • 18
  • 39
0

From a protocol perspective, you cannot dial after call establishment.

But you can send DTMF, to be detected/parsed by whatever UAS you're in communication (e.g. an MRF or Voice Mail System).

There are different ways to transmit DMTF.

  1. One way is to use INFO as it is indicated in the accepted answer as described in RFC2976
  2. Other way is to use DMTF encoding in RTP RFC4733 [I'd say this is the most common, since this goes end-to-end without requiring the traversal of proxies]
  3. Finally, DMTF tones could be carried simply inband. However this could be problematic with some codecs.

What to use depends on the capabilities of your UAC and the UAS you are talking to or the SDP you have negotiated.

Community
  • 1
  • 1
jsantander
  • 4,972
  • 16
  • 27