Bill Simon | 25 May 16:57 2015

Problem with SIP SDP and call hold

I have found a problem with Yate's handling of SDP and cannot determine a fix.

If a caller issues a re-invite to put the call on hold, his SDP includes either "a=sendonly" or "a=inactive"
to indicate that the media stream is muted.

Yate responds with a SIP 200 OK which does not echo the attribute back.

Most clients don't seem to care but at least one client I am using (Zoiper) then hangs up the call with the
error "not implemented."

Other servers echo the attribute back to the client in the SIP 200 message, so I believe this is is the
expected behavior. Unfortunately the RFC is not clear.
Jérôme Simionato | 20 May 09:14 2015


Hello everyone,
i have a new trunk to configure with SIP-I.

I read on documentation that yate can only support SIP-T for now.
Is there any developpment on SIP-I actually, or a commercial version to support it ?


Jérôme SIMIONATO Développeur NEOCOM Multimédia SA - 5, rue Platon, 75015 Paris Tél. standard : 01 72 71 20 20 Tél. direct : 0 826 81 51 51 - poste 5309 (0.15E/min) Paris Stock Exchange - Euronext MLNEO Confidentialité/Internet disclaimer: Ce message contient des informations confidentielles couvertes par le secret professionnel. Si vous n'êtes pas le destinataire désigné, nous vous remercions de bien vouloir nous en aviser immédiatement et de nous retourner ce message ou de le détruire, sans faire un quelconque usage de son contenu, ni le communiquer ou le diffuser, ni en prendre aucune copie, électronique ou non. La sécurité des envois de messages électroniques ne peut être assurée. Ces messages peuvent notamment être interceptés, modifiés, altérés, détruits, perdus, arriver tardivement ou partiellement, ou contenir des virus. L'expéditeur ne saurait être tenu pour responsable des erreurs ou omissions qui résulteraient d'un envoi par message électronique. Si vous souhaitez vérifier l'authenticité du message et des fichiers joints, merci d'en solliciter une copie sur papier.
Ciprian ARSENIE | 20 May 08:28 2015



I have one yate with cisco as5350 configured for ss7 . everything works well but i want when a call come from sig to redirect to a different context based on the name of trunk

The reason for doing this is that i now want to put another cisco to different operator and when i send calls to my billing i do the billing based on ports that sip sends this is the reason for using oconnection_id


Thank you in advance


This is my rexgexp




${module}^sig$=goto from_telekom

${module}^sip$=goto ip_authorize



.*=echo *********************************************************************************************************** ${called} from default

${address}^37\.153\.137\.5\:=goto to_telekom

.*=-;error=forbidden;reason=Protocol not allowed





.*=echo *********************************************************************************************************** ${called} from SIG







.*=sip/sip:${called} <at> 37.......;oconnection_id=romtelecom_18201



.*=echo *********************************************************************************************************** ${called} from SIP








And this is part of ysipchan


[listener romtelecom_18200]





[listener romtelecom_18201]





[listener romtelecom_18202]





[listener romtelecom_18880]














General Director


Tel: +40755338246



Jamie Gordon | 19 May 16:35 2015

Yate as a client - accfile.conf - keepalive

Hi !
Please could someone help me?
I’m using register.conf to take credentials from a db table and register several accounts with another YATE server.
The registration is working perfectly, no problems here.
However, I’m having problems proving that the keepalive setting is working. ( Eg Set to 20 seconds )
Sadly Wireshark doesn’t show any additional SIP messages that i would expect to see, say for example from a Cisco SPA303 doing the same thing.
I’ve even tested it with a static accounts created in accfile.conf, but I have the same issue here. IE I can’t see anything.
i have made sure of the following settings:
My question .... Does ‘keepalive’ work with register.conf accounts and what would i expect to see ?
Thank you!

Jamie Gordon

Direct : 0844 482 0065

Digital Lines Limited's registered office is Snappers, Church Road, Rudgeway, Bristol BS35 3SH. Registered in England, number 05293518

This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify the system manager.
Diana Cionoiu | 18 May 12:46 2015

yatebts 5.0 & yate 5.5

Hello Everyone,

Yet Another Release day has come. And this one is for Yate 5.5 and 
YateBTS 5.0.

This release is all about GPRS in YateBTS.

More about new features can be found at:


Matthew Crocker | 15 May 14:54 2015

Yate in the US with SS7 interconnect to the PSTN

Is anyone using Yate in the US with an SS7 interconnect with an ILEC?

 I’m looking to use Yate to handle my SS7 A-links (or SIGTRAN) and manage my Tandem IMTs with Verizon.   
Anyone else doing that?

 SIGTRAN with TNS into Yate,   DS1s from ILEC tandem into a media gateway,  SIP into a soft switch

 Are there any media gateways supported by Yate that are not EoL by the manufacturer?   I would need to handle
100 DS1s



Matthew S. Crocker
Crocker Communications, Inc.
PO BOX 710
Greenfield, MA 01302-0710

E: matthew@...
P: (413) 746-2760
F: (413) 746-3704

Bill Simon | 12 May 15:05 2015

mysqldb connection errors

I'm experiencing something that at first I thought was a bug in my SQL script but now believe to be a bug or
incorrect handling of errors in Yate code.

The db setup is mysql, with a connection pool size 5. Yate is calling a stored procedure through the register
module for routing.

I started to see errors in the Yate log like this:

mysqldb:WARN> Query for 'db.2' failed: You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'NULL' at line 1

At the same time, the error counter was building up when I looked in rmanager at "status mysqldb".

So it seems there is a problem with the procedure. But trying the same call again, it works. Then it does not
work. I also ran the procedure manually from the MySQL GUI tools and from the command line. Everything
works fine. I reviewed it for errors.

The only consistent thing about the error is the db connection number in the Yate log. It appears that
whenever the connection 'db.2' from the pool is used, we get the error. So I killed off the TCP connections
between Yate and the database so that each would reconnect and now the error is no longer happening.

Now I believe that there is a connection error and it is not being handled properly, but Yate or the mysql
driver within is giving a misleading error that looks like a SQL syntax error.

I do not know how to proceed from here. Can anyone give some advice?
Marian Podgoreanu | 11 May 09:00 2015

Re: Ringback tone generate ONLY where earlymedia=false


Use a replace source in incoming call leg.
Note the star in tone target: instructs the tone to auto repeat.

${earlymedia}^false$=enqueue chan.masquerade; \
     message=chan.attach; \
     id=${peerid}; \


On 07.05.2015 15:51, Tusar wrote:
> Hi,
> I am trying set early media ringback tone ONLY where earlymedia=false.
> [extra]
> call.ringing=80
> [call.ringing]
> ${earlymedia}^false$=dispatch
> chan.masquerade;message=chan.attach;id=${id};source=tone/ring
> [default]
> ${rtp_forward}possible=;rtp_forward=no
> ${formats}^\([^,]*\)=;formats=\1
> .*=fork
> sip/sip:\0 <at>;xsip_auth_bye=false;fork.calltype=persistent;fork.autoring=true;fork.automessage=call.progress
> That is working fine and I am getting ringback tone. But even after
> answer the call, I am still getting ringback tone.
> Howto stop ringback tone just after answer the call ?
> Thanks in advance.
> BR,
> Tusar

Rodrigo Ricardo Passos | 23 Apr 14:36 2014

Get number in SAM

Hi Yate,

How can i get the digit in SAM message after receive an IAM using 



Dana cafe | 2 May 14:50 2014

queue.conf operators configuration

good afternoon,

I am trying to put calls in a queue and redistribute to operators 
(without using a database) but I don't know how to define these operators.

For testing i defined two users in regfile.conf:



Then in regexroute.conf I defined:


Finally test1 is defined  in the queue.conf file :


[queue test1]
mintime = 100
length= 100
onhold=wave/play/ test.wav
;definition of the operator
${queue} = test1
${required} = 1
${current} = 1
;  ${waiting}
  maxcall = 3000
;  prompt: string: Resource to play to the operator when it answers

using yate client logged as 1000 I call to 100 and the music on hold 
start but the call is not distributed to the user 2000 which is logged 
in another yate client. For sure the configuration of the operator is 
wrong, unfortunatelly I didn't find a useful example in the website and 
in internet.

thank you very much for your valuable help,


Moritz Orbach | 18 Mar 19:47 2014

Authentication-check in javascript

Hello all,

is there a javascript equivalent to regexroute's

Or more precisely: how can I (on call.route, in javascript)
1) verify that a client is registered in regfile.conf (allowed to make a
   certain call)
2) retrieve the true extension of the client (not based on any headers
   the client can set itself, but based on the registration)

I tried "msg.username", msg.params['username'] and similar properties of
the Message object in the call.route handler, but none of them seemed to

Best regards