I am trying to send an INFO message via ESL but I am having trouble. It looks like the logic in mod_sofia.c doesn't support external devices behind nat. When I generate the event via ESL as shown below the SIP INFO message has a to-uri with the private nat ip address and the message never reaches the phone. Is there a better way to sent CSTA INFO based messages or is there another way to hand craft SIP messages via ESL? Using sendevent NOTIFY will properly build the SIP message but since it isn't the rfc dictated INFO message it will not work (strangely enough the NOTIFY message is being used for CSTA messages for sendevent SWITCH_EVENT_PHONE_FEATURE). See mod_sofia.c at line 5699 for SWITCH_EVENT_SEND_INFO: https://github.com/signalwire/freeswitch/blob/v1.10/src/mod/endpoints/mod_so... sendevent SEND_INFO profile: internal from-uri: sip:1003@labDomain.com to-uri: sip:1003@labDomain.com local-user: 1003@labDomain.com content-type: application/csta+xml Content-Disposition: signal;handling=required content-length: 275 <?xml version="1.0" encoding="UTF-8"?><MakeCall xmlns=" http://www.ecma-international.org/standards/ecma-323/csta/ed3 "><callingDevice>sip:1003@labDomain.com </callingDevice><calledDirectoryNumber>1016</calledDirectoryNumber><autoOriginate>doNotPrompt</autoOriginate></MakeCall> Thank you. Brent Bailey
Reading the mod_sofia.c code further it appears the case statement for SWITCH_EVENT_NOTIFY is not setting the destination with the necessary route header as done elsewhere. Other events appear to use the following logic: dst = sofia_glue_get_destination((char *) contact_uri); if (dst->route_uri) { route_uri = sofia_glue_strip_uri(dst->route_uri); } Can anyone recommend a workaround or comment on my findings? The sendevent SEND_INFO event appears to simply be missing this route header and the phones do not receive the message. Ultimately the goal is to be able to send the necessary INFO messages for uaCSTA third party call control for capable devices (most are). Thanks, Brent Bailey On Tue, Feb 11, 2020 at 1:23 PM Brent Bailey <bailey.brent@gmail.com> wrote:
I am trying to send an INFO message via ESL but I am having trouble. It looks like the logic in mod_sofia.c doesn't support external devices behind nat. When I generate the event via ESL as shown below the SIP INFO message has a to-uri with the private nat ip address and the message never reaches the phone. Is there a better way to sent CSTA INFO based messages or is there another way to hand craft SIP messages via ESL? Using sendevent NOTIFY will properly build the SIP message but since it isn't the rfc dictated INFO message it will not work (strangely enough the NOTIFY message is being used for CSTA messages for sendevent SWITCH_EVENT_PHONE_FEATURE).
See mod_sofia.c at line 5699 for SWITCH_EVENT_SEND_INFO:
https://github.com/signalwire/freeswitch/blob/v1.10/src/mod/endpoints/mod_so...
sendevent SEND_INFO profile: internal from-uri: sip:1003@labDomain.com to-uri: sip:1003@labDomain.com local-user: 1003@labDomain.com content-type: application/csta+xml Content-Disposition: signal;handling=required content-length: 275
<?xml version="1.0" encoding="UTF-8"?><MakeCall xmlns=" http://www.ecma-international.org/standards/ecma-323/csta/ed3 "><callingDevice>sip:1003@labDomain.com </callingDevice><calledDirectoryNumber>1016</calledDirectoryNumber><autoOriginate>doNotPrompt</autoOriginate></MakeCall>
Thank you. Brent Bailey
participants (1)
-
Brent Bailey