Summary:ASTERISK-07972: SDP information incorrect if canreinvite is globally undefined
Reporter:Mathieu Rene (math)Labels:
Date Opened:2006-10-20 15:23:58Date Closed:2011-06-07 14:02:46
Versions:Frequency of
Description:I had a problem I couldnt hear audio as soon as an incoming sip calls gets answered by a phone, but when it was getting to voicemail everything was fine.

rtp debug clearly showed there was no inbound RTP and a sip debug showed that the SDP message send to the sip provider contained the local ip address of my ip phone instead of the public IP address of asterisk. I have canreinvite=no in the sip.conf user entry, but not globally (even tough there was no re-invite going on as there was only one invite message at the beginning of the trace).

As soon as I added canreinvite=no in the [general] section, the SDP message was corrected and everything worked perfectly.
Comments:By: Anthony LaMantia (alamantia) 2006-10-20 17:07:33

Can you show the output of sip show peer on the peers involved? when you can canreinvite=no set for the peer and not  in the general section..

By: Mathieu Rene (math) 2006-10-21 00:49:37

[unrevealant entries truncated]

vtl-gw*CLI> sip list peers
Name/username              Host            Dyn Nat ACL Port     Status
linksys-spa/linksys-spa       D   N      5060     Unmonitored
pap2/pap2               D   N      5060     Unmonitored
15 sip peers [Monitored: 1 online, 0 offline Unmonitored: 6 online, 8 offline]

[lot of stuff truncated to fit mantis display]
vtl-gw*CLI> sip list users
Username          Def.Context      ACL  NAT
linksys-spa         outgoing         No   Always
pap2                   outgoing         No   Always
5145551155       pstn-incoming    No   RFC3581

The call is coming from SIP/5145551155 and is answered by SIP/pap2

By: Anthony LaMantia (alamantia) 2006-11-06 17:12:57.000-0600

i need  the output of "sip show peer" for each peer involved.. it also would be best if you attach the output as a textfile to this issue.

By: Joshua C. Colp (jcolp) 2006-11-15 16:50:37.000-0600

1.4 and trunk have the capability to have media go directly between endpoints before the call is even established, it's called early bridging. By default canreinvite is assumed to be yes so what was happening is that the media stream was getting setup directly from the start as canreinvite was assumed to be yes. You might try the nonat option or as you discovered, the no option makes it work fine too. If you would like to see the default value of canreinvite changed you might try talking on the developer mailing list and listing the reasons, or talking to oej on IRC. Peace!