> "If" I understood your initial objective correctly (and I may not have), > the user's phones are negotiating the codec to be used for each rtp session. > > Asterisk parameters can be used to dictate rtp sessions between the sip > phone and asterisk, but that won't influence the next step in which the sip > phone negotiates a new rtp session directly with the gateway. > > The gateway and the phone will negotiate a common codec based on > whatever logic those two devices have been programmed with by their > respective manufacturers; asterisk isn't involved. > > So, it sounds like the issue is understanding the codec selection logic > that has been programmed into the gateway and the phone.I think you're getting my point, at least I think so (I'm getting more and more confused myself about this...) The problem is that the phone negotiates a codec with asterisk when placing the call (remember I have all reinvite's set to "no", so the gateway and the phone won't talk directly to each other!). This negotiation actually works correctly, because I force the phone's codec using "disallow=all; allow=g729" in the SIP phone's peer configuration. The negotiation which doesn't work the way I want is the asterisk-to-gateway part. The gateway can talk either ULAW or G729, whatever I tell it, if I "force" it using the disallow/allow method in sip.conf. The problem is that I need asterisk to talk to the gateway sometimes with ULAW, sometimes with G729, depending on the SIP phone who placed the call in the first place. What I need is some sort of command which says "OK, now Dial(... @gateway), but force G729" (which works *if* I tell asterisk that the gateway supports G729 *only* in sip.conf, but we want it to support both codecs, right?). Apparently I can only force the codec on incoming channels, not on outgoing channels. Is this really an asterisk limitation? -Manuel ___________________________________________________ Ticinocom SA - Via Stazione 5 - 6600 Muralto Tel 0844 007070 - Fax 0844 007071 http://www.ticinocom.com
Did you try having two sip.conf entries for your gateway? Forcing one with G729 and the other with ulaw? You would obviously need to change your dialplan accordingly and have each phone configured so that it would take the proper extension. I have not tried this, it is just really an idea... Manuel Wenger wrote:>>"If" I understood your initial objective correctly (and I may not have), >>the user's phones are negotiating the codec to be used for each rtp session. >> >>Asterisk parameters can be used to dictate rtp sessions between the sip >>phone and asterisk, but that won't influence the next step in which the sip >>phone negotiates a new rtp session directly with the gateway. >> >>The gateway and the phone will negotiate a common codec based on >>whatever logic those two devices have been programmed with by their >>respective manufacturers; asterisk isn't involved. >> >>So, it sounds like the issue is understanding the codec selection logic >>that has been programmed into the gateway and the phone. > > > > I think you're getting my point, at least I think so (I'm getting more and more confused myself about this...) > > The problem is that the phone negotiates a codec with asterisk when placing the call (remember I have all reinvite's set to "no", so the gateway and the phone won't talk directly to each other!). This negotiation actually works correctly, because I force the phone's codec using "disallow=all; allow=g729" in the SIP phone's peer configuration. > > The negotiation which doesn't work the way I want is the asterisk-to-gateway part. The gateway can talk either ULAW or G729, whatever I tell it, if I "force" it using the disallow/allow method in sip.conf. The problem is that I need asterisk to talk to the gateway sometimes with ULAW, sometimes with G729, depending on the SIP phone who placed the call in the first place. > > What I need is some sort of command which says "OK, now Dial(... @gateway), but force G729" (which works *if* I tell asterisk that the gateway supports G729 *only* in sip.conf, but we want it to support both codecs, right?). Apparently I can only force the codec on incoming channels, not on outgoing channels. Is this really an asterisk limitation? > > -Manuel > > > ___________________________________________________ > Ticinocom SA - Via Stazione 5 - 6600 Muralto > Tel 0844 007070 - Fax 0844 007071 > http://www.ticinocom.com > > _______________________________________________ > Asterisk-Users mailing list > Asterisk-Users@lists.digium.com > http://lists.digium.com/mailman/listinfo/asterisk-users > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users-- taridium.communications dominique kull, partner the old lodge, london sw6 6ee uk t: +44 207 731 1562 f: +44 207 900 6564 v: fwd 268167 w: http://taridium.com e: dk@taridium.com
> > "If" I understood your initial objective correctly (and I may not have), > > the user's phones are negotiating the codec to be used for each rtp session. > > > > Asterisk parameters can be used to dictate rtp sessions between the sip > > phone and asterisk, but that won't influence the next step in which the sip > > phone negotiates a new rtp session directly with the gateway. > > > > The gateway and the phone will negotiate a common codec based on > > whatever logic those two devices have been programmed with by their > > respective manufacturers; asterisk isn't involved. > > > > So, it sounds like the issue is understanding the codec selection logic > > that has been programmed into the gateway and the phone. > > > I think you're getting my point, at least I think so (I'm getting more and moreconfused myself about this...)> > The problem is that the phone negotiates a codec with asterisk when placing the call(remember I have all reinvite's set to "no", so the gateway and the phone won't talk directly to each other!). This negotiation actually works correctly, because I force the phone's codec using "disallow=all; allow=g729" in the SIP phone's peer configuration.> > The negotiation which doesn't work the way I want is the asterisk-to-gateway part. Thegateway can talk either ULAW or G729, whatever I tell it, if I "force" it using the disallow/allow method in sip.conf. The problem is that I need asterisk to talk to the gateway sometimes with ULAW, sometimes with G729, depending on the SIP phone who placed the call in the first place.> > What I need is some sort of command which says "OK, now Dial(... @gateway), but forceG729" (which works *if* I tell asterisk that the gateway supports G729 *only* in sip.conf, but we want it to support both codecs, right?). Apparently I can only force the codec on incoming channels, not on outgoing channels. Is this really an asterisk limitation?>Now I better understand what you're trying to do. I'm not a programmer, but I'm fairly certain that you can't dynamically change codec preference within asterisk on a per call basis. However, just as soon as this gets posted, someone will likely jump all over that statement and post a way to do it. I don't think its and incoming vs outgoing issue. For each outgoing call, an rtp session is established between * and the gateway. That rtp session goes through a codec negotiation process that automatically selects a compatible codec based on what's common, and, when multiple choices are available, some other decision making process (transcode time, quality or something) that you probably don't have control over on a per call basis. So, my guess is you're not going to be able to do what you want.