Yate Community Forum
Yate server => Yate bugs => Topic started by: jakubbednar on October 19, 2013, 09:15:24 AM
-
Hi, I am using Yate 4.3 and I have problem with transcoding. I make it simple... I have a clean isntallation of Yate and very basic config.
Regfile.conf
[username]
[1000]
password=
format=alaw
[1001]
password=
format=g729
ysipchan.conf
[codecs]
alaw=enable
g729=enable
and after reading yate docs from http://docs.yate.ro/wiki/Transcoding , I added these two lines to regexroute:
regexroute.conf
[contexts]
.*=;oformats=$(transcode,,${formats})
[default]
${rtp_forward}^yes$^=;formats=${oformats}
But its not working... it makes call but both legs uses alaw codec or both g729, so yate doesnt perform transcoding. See attached log.
I tried a lot of things, searched in yate archive and also in this forum, but I am not able to force Yate to transcode and I really need it, becouse I need it for testig performance during transcoding with abacus test system. Any answer will be helpfull.
Thanks
-
What protocol are you using?
Why do you need to force transcoding?
Can you give us an example?
-
I am using SIP protocol.
And I need it for testing performance for my diploma thesis. I am testing Yate on differnet HW configurations. I have to measure and compatre max. call volume that can Yate handle with transcoding and without transcoding.
thanks for any help
-
It is not easy to force transcoding.
Usually people want to avoid it.
Configure the calling party not to offer alaw.
Set the formats when routing:
.*=;formats=alaw
I suppose you do have a G729 data translator module for yate.
The transcoding won't work otherwise.
The incoming channel media won't change.
The outgoing channel format will be set to alaw.
-
What do you mean with : "Configure the calling party not to offer alaw." ? Where and what to change ?
And yes I have compiled and loaded g729 module a and I can make calls when both legs uses g729, but I need to find out how to transcode :)
Thanks a lot for your help
-
When you are routing a call in regexroute it came from somewhere.
The application you are using to make the call is the calling party.
-
I use regfile for routing calls, becouse I have only internal sip users in regfile. So I dont use regexroute to route calls. So I have to use regexroute for route calls or is there any chance transcode codecs when routing trough regfile module?
If I have to use regexroute, can you show me example of simple rule for route calls through regexroute? Only for two users for example :
regfile.conf
[1000]
password=
[1001]
password=
I was serching and find something like this : ^1000$=sip/sip:${called};line=[1000] , but this doesnt work.
Thanks again for your time and help
-
To test it you need a calling application and a called application.
Just configure supported codecs to be different in both applications.
Yate will automatically transcode if caller/called party have different codecs.
-
Yes, I am testing it with one app configured for one codec and second app configured for different codec. I tried alaw-g729, alaw-gsm, and many others combinations of codecs, but result still the same, call is canceled with warning (see the attached log): "No suitable codec for remote offer (PJMEDIA_SDPNEG_NOANSCODEC)" , so I dont know what to do, how to setup yate to transcode.
Thanks
-
Jakubbednar,
try ti reset your configs to default and change next
regfie.conf[general]
route=90
[1000]
password=
[1001]
password=
regexroute.conf
[contexts]
.*=default;formats=alaw,ulaw
And, set to the client configs only g729(caller which) , and at the called - only 711
can be obtained ...
2 Marian,
which module generates these messages ?
notification: More than two wideband layers found. The stream is corrupted.
notification: Invalid mode encountered. The stream is corrupted.
notification: More than two wideband layers found. The stream is corrupted.
Thanks
-
cc08: the message is put by speex library used in speexcodec.cpp
-
to cc08: Thnx man its workig ;)
So once more big thnaks to cc08 and also marian for your help.