Problems with cancelling a SIP "call"
Hi,
I want to ring my IP phone. Therefore I wrote a simple PHP script which talks to my VoIP router. The phone rings as it should but when I send the "CANCEL" request the router always answers with "481 Call Leg/Transaction Does Not Exist" and the phone continues ringing. I check the Call-ID, CSeq and other ids a dozen times but everything seems to match. I also tried a "normal" VoIP client software, captured the data with Wireshark and compared them and found nothing wrong. Does anyone have an idea where my mistake is? You'll find the complete data below. The router has IP 192.168.0.1 and the calling device has IP 192.168.0.2. The number "**100" is called (internal number). Regards! Code:
---- SENDING ---- |
I have zero knowledge of SIP protocol, but as no one else has stepped up I will offer the results of my own quick search.
Using the search term "481 Call Leg/Transaction Does Not Exist" as a starting point and DuckDuckGo search engine, I find many potentially helpful pages. This one from asterisk.org stands out as applicable on a quick scan, from which: Quote:
As there appears to be a shortage of SIP programmers participating here, you may get better response from any active VoIP forum - there appear to be many! Good luck! |
Just ran into exactly the same problem while trying to ring all phones connected to a Fritz!Box in response to an home-automation event. The solution is to prefix the "branch" id with the magic cookie "z9hG4bK" to signal compliance with the specification.
See https://github.com/astoeckel/femtosi...er/femtosip.py for a working example. |
All times are GMT -5. The time now is 08:04 PM. |