I am trying to make a web client for my SIP call request. I have done invite call successfully from browser. But, I am not getting how to refer to the 3rd party call through Javascript. I am using WebRTC and SIPML5.
On trying session.transfer()
,after successful Refer, the link to the referrer is broken... but, I am able to hear audio from the referee to referrer. 'I am not getting Notify. Just refer is ACK sip message and then 1 sided call.'
For example:
A
refers toB
. After successful refer, I am not able to send/recv SIP packets fromA
. But, I am able to do the same fromB
. So, whenB
talks,A
can hear. But, vice-versa is not working.
The SIP refer is working perfectly via SIPP. And 2-way packets are available.
P.S.: I DONT WANT CALL TRANSFER.
If SIPML5 does not support this, can I do the same via Java. Where I send a refer request to SIP servelet which handles it via doRefer()
?
These are the links I referred:
I found it on my own.
SIPML5 does not support call refer but call transfer. So, it uses REFER to transfer call but then, the callee gets disconnected.
So, finding a workaround, I sent the REFER message details in session.send() as a string. I had to parse the string to fetch the data which ofcourse is not the SIP message but a simple string.
and on handling refer, I am able to receive packets from callee and caller.
The problem persists though,
The problem is that the invite call's session is of type 'call' whereas the message session was of type 'message'.
So, I added CALL-ID of call session into Message session and parsed it. Thus successfully getting the packets on same channel.