[Freeswitch-users] Codecs (Again!)

Andries Venter apventer at gmail.com
Wed Apr 1 18:51:53 MSD 2015


I am using Freeswitch (1.4.8) as an SBC between our company PABX and our
ISP's Trunk (also terminating on an SBC).

My problem is that I need G729 in some cases and PCMA in others (the
majority).



The setup looks more or less like this:

Our PABX (192.168.102.215)=>(192.168.102.102)Our SBC
(10.17.159.10)=>(10.17.159.9)ISP SBC=>Rest of the world



Since we use private addresses, Freeswitch must do RTP proxying.  No
transcoding must be done!!!



I have set global_codec_prefs to "PCMA,G729".  Then everything to
destination supporting PCMA works.  When trying to connect to a G729-only
PABX, the call fails.  Leg A is setup as follows



    192.168.102.215.5060 > 192.168.102.102.5090: SIP, length: 933

        INVITE sip:0873611337 at 192.168.102.102:5090;transport=udp SIP/2.0

        To: <sip:0873611337 at 192.168.102.102;user=phone>

        From: "JGD Winson" <sip:anonymous at anonymous.invalid
>;tag=snl_iFGEOrlLLf

        Call-ID: SEC11-a64a8c0-1e64a8c0-1-9lz36fM4mXAo

        CSeq: 1235 INVITE

        Contact: <sip:anonymous at 192.168.102.215:5060;maddr=192.168.102.215>

        Via: SIP/2.0/UDP 192.168.102.215:5060
;branch=z9hG4bKSEC-a64a8c0-1e64a8c0-1-5nUh73XkOk

        Content-Type: application/sdp

        Content-Length: 288

        X-Siemens-Call-Type: ST-insecure

        Accept-Language: en;q=0.0

        Allow: REGISTER, INVITE, ACK, BYE, CANCEL, NOTIFY, REFER, INFO

        Date: Wed, 01 Apr 2015 14:30:15 GMT

        Max-Forwards: 69



        v=0

        o=MxSIP 0 105140472 IN IP4 10.11.32.226

        s=SIP Call

        c=IN IP4 10.11.32.226

        t=0 0

        m=audio 5014 RTP/AVP 8 0 18 101

        a=rtpmap:8 PCMA/8000

        a=rtpmap:0 PCMU/8000

        a=rtpmap:18 G729/8000

        a=rtpmap:101 telephone-event/8000

        a=silenceSupp:off - - - -

        a=fmtp:18 annexb=no

        a=fmtp:101 0-15



    192.168.102.102.5090 > 192.168.102.215.5060: SIP, length: 396

        SIP/2.0 100 Trying

        Via: SIP/2.0/UDP 192.168.102.215:5060
;branch=z9hG4bKSEC-a64a8c0-1e64a8c0-1-5nUh73XkOk

        From: "JGD Winson" <sip:anonymous at anonymous.invalid
>;tag=snl_iFGEOrlLLf

        To: <sip:0873611337 at 192.168.102.102;user=phone>

        Call-ID: SEC11-a64a8c0-1e64a8c0-1-9lz36fM4mXAo

        CSeq: 1235 INVITE

        User-Agent:
FreeSWITCH-mod_sofia/1.4.18+git~20150312T185523Z~4eed221b69~64bit

        Content-Length: 0



    192.168.102.102.5090 > 192.168.102.215.5060: SIP, length: 1201

        SIP/2.0 200 OK

        Via: SIP/2.0/UDP 192.168.102.215:5060
;branch=z9hG4bKSEC-a64a8c0-1e64a8c0-1-5nUh73XkOk

        From: "JGD Winson" <sip:anonymous at anonymous.invalid
>;tag=snl_iFGEOrlLLf

        To: <sip:0873611337 at 192.168.102.102;user=phone>;tag=BytX6X1t7HytF

        Call-ID: SEC11-a64a8c0-1e64a8c0-1-9lz36fM4mXAo

        CSeq: 1235 INVITE

        Contact: <sip:0873611337 at 192.168.102.102:5090;transport=udp>

        User-Agent:
FreeSWITCH-mod_sofia/1.4.18+git~20150312T185523Z~4eed221b69~64bit

        Accept: application/sdp

        Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE,
REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE

        Supported: timer, path, replaces

        Allow-Events: talk, hold, conference, presence, as-feature-event,
dialog, line-seize, call-info, sla, include-session-description,
presence.winfo, message-summary, refer

        Content-Type: application/sdp

        Content-Disposition: session

        Content-Length: 226

        Remote-Party-ID: "0873611337" <sip:0873611337 at 192.168.102.102
>;party=calling;privacy=off;screen=no



        v=0

        o=FreeSWITCH 1427881297 1427881298 IN IP4 192.168.102.102

        s=FreeSWITCH

        c=IN IP4 192.168.102.102

        t=0 0

        m=audio 17318 RTP/AVP 8 101

        a=rtpmap:8 PCMA/8000

        a=rtpmap:101 telephone-event/8000

        a=fmtp:101 0-16

        a=ptime:20





When I change my global_codec_prefs to "G729,PCMA", G729 is offered to our
PABX by Freeswitch, then to the ISP and then it works to destinations
supporting G729.  It fails to destinations not supporting G729.  Now Leg A
is setup as follows:



   192.168.102.215.5060 > 192.168.102.102.5090: SIP, length: 934

        INVITE sip:0873611337 at 192.168.102.102:5090;transport=udp SIP/2.0

        To: <sip:0873611337 at 192.168.102.102;user=phone>

        From: "JGD Winson" <sip:anonymous at anonymous.invalid
>;tag=snl_8NZMvB3KNA

        Call-ID: SEC11-a64a8c0-1e64a8c0-1-k6bGtU73W2Vm

        CSeq: 1235 INVITE

        Contact: <sip:anonymous at 192.168.102.215:5060;maddr=192.168.102.215>

        Via: SIP/2.0/UDP 192.168.102.215:5060
;branch=z9hG4bKSEC-a64a8c0-1e64a8c0-1-ZO003uQGh0

        Content-Type: application/sdp

        Content-Length: 289

        X-Siemens-Call-Type: ST-insecure

        Accept-Language: en;q=0.0

        Allow: REGISTER, INVITE, ACK, BYE, CANCEL, NOTIFY, REFER, INFO

        Date: Wed, 01 Apr 2015 14:27:51 GMT

        Max-Forwards: 69



        v=0

        o=MxSIP 0 1224193414 IN IP4 10.11.32.226

        s=SIP Call

        c=IN IP4 10.11.32.226

        t=0 0

        m=audio 5014 RTP/AVP 8 0 18 101

        a=rtpmap:8 PCMA/8000

        a=rtpmap:0 PCMU/8000

        a=rtpmap:18 G729/8000

        a=rtpmap:101 telephone-event/8000

        a=silenceSupp:off - - - -

        a=fmtp:18 annexb=no

        a=fmtp:101 0-15



    192.168.102.102.5090 > 192.168.102.215.5060: SIP, length: 396

        SIP/2.0 100 Trying

        Via: SIP/2.0/UDP 192.168.102.215:5060
;branch=z9hG4bKSEC-a64a8c0-1e64a8c0-1-ZO003uQGh0

        From: "JGD Winson" <sip:anonymous at anonymous.invalid
>;tag=snl_8NZMvB3KNA

        To: <sip:0873611337 at 192.168.102.102;user=phone>

        Call-ID: SEC11-a64a8c0-1e64a8c0-1-k6bGtU73W2Vm

        CSeq: 1235 INVITE

        User-Agent:
FreeSWITCH-mod_sofia/1.4.18+git~20150312T185523Z~4eed221b69~64bit

        Content-Length: 0



    192.168.102.102.5090 > 192.168.102.215.5060: SIP, length: 1224

        SIP/2.0 200 OK

        Via: SIP/2.0/UDP 192.168.102.215:5060
;branch=z9hG4bKSEC-a64a8c0-1e64a8c0-1-ZO003uQGh0

        From: "JGD Winson" <sip:anonymous at anonymous.invalid
>;tag=snl_8NZMvB3KNA

        To: <sip:0873611337 at 192.168.102.102;user=phone>;tag=g2eKXDUB6y4Hr

        Call-ID: SEC11-a64a8c0-1e64a8c0-1-k6bGtU73W2Vm

        CSeq: 1235 INVITE

        Contact: <sip:0873611337 at 192.168.102.102:5090;transport=udp>

        User-Agent:
FreeSWITCH-mod_sofia/1.4.18+git~20150312T185523Z~4eed221b69~64bit

        Accept: application/sdp

        Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE,
REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE

        Supported: timer, path, replaces

        Allow-Events: talk, hold, conference, presence, as-feature-event,
dialog, line-seize, call-info, sla, include-session-description,
presence.winfo, message-summary, refer

        Content-Type: application/sdp

        Content-Disposition: session

        Content-Length: 249

        Remote-Party-ID: "0873611337" <sip:0873611337 at 192.168.102.102
>;party=calling;privacy=off;screen=no



        v=0

        o=FreeSWITCH 1427866745 1427866746 IN IP4 192.168.102.102

        s=FreeSWITCH

        c=IN IP4 192.168.102.102

        t=0 0

        m=audio 31726 RTP/AVP 18 101

        a=rtpmap:18 G729/8000

        a=fmtp:18 annexb=no

        a=rtpmap:101 telephone-event/8000

        a=fmtp:101 0-16

        a=ptime:20



I have tried various (hopefully all) combinations of
inbound-codec-negotiation (generous, greedy and scrooge) and
inbound-late-negotiation (true, false).  Nothing does what I want.



I believe Freeswitch needs to negotiate the codecs with the endpoint and
choose one from my list.  However, it seems to grab the first one in my
list before checking the endpoint.  Then it offers only that codec to the
endpoint, which of course ignores / rejects it!



What can I do?

Regards
Andries
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20150401/7326d561/attachment.html 


Join us at ClueCon 2016 Aug 8-12, 2016
More information about the FreeSWITCH-users mailing list