Коля Гаврылюк | 27 Aug 14:19 2014

Record stops when put call on hold

Hello, everybody!

When we put call on hold the record stops. We start recording after receiving of call.answered message. Here is an action flow:

1. sip/1   ----->  call to  ----->  sip/2
2. sip/2 answered   ----->   "call.answered" received  ----->  generate chan.record with params id=sip/2, call=wave/record/call_record_path, peer=wave/record/peer_record_path.
3. Put call on hold:
  - sip/1 puts call on hold. In this case peer record is smaller than call record. After converting to one record it is not synchronous.
  - sip/2 puts call on hold. In this case record of call stops.

The firs situation I have resolved by sending some tone on hold. But the second one is still present.

Is it possible to do something with the second problem?

Regards, Nikolay
Vladimir Latyshev | 26 Aug 21:35 2014

cpuload and ccongestion modules

Hi all!

When limiting load to a single server, the best way is to use load balancer. But if for some reason CPU load goes higher than was planned, it is better to trade rejection of some calls for a voice quality of entire system.
For this ccongestion module can be used, and it is working fine.
Accept, congestion and reject levels are easy to understand, but what is 'partial' level?


Bipin Patel | 26 Aug 14:03 2014

regex help with codecs format


i would like to make rtp passthrough yate so i disabled rtp forward but i want to pass all codecs the client sends to gateway without any modification done by yate so i use the below line

the problem in this is if client sends a codec list consisting of like 4 codecs then due to the above line only the first codec in list is sent to gateway whereas i want the complete list to be sent so need a proper regex for the above line, can any1 help.
i dont want to send raw sdp forwarded from client to gateway

body { font-family: Verdana, sans-serif; font-size: 0.8em; color:#484848; } h1, h2, h3 { font-family: "Trebuchet MS", Verdana, sans-serif; margin:0in; margin-bottom:.0001pt; } p.footr { font-family: "Trebuchet MS", Verdana, sans-serif; margin:0in; margin-bottom:.0001pt; } h1 { font-size: 1.2em; } h2, h3 { font-size: 1.1em; } a, a:link, a:visited { color: #2A5685;} a:hover, a:active { color: #c61a1a; } a.wiki-anchor { display: none; } hr { width: 100%; height: 1px; background: #ccc; border: 0; } Regards,

Daniel Reurich | 26 Aug 06:05 2014

Voicemail solution for yate


I've been using the stock voicemail setup provided with yate (debian 
packages) and have found it to be a nice example, but not a very useful 

Has anyone developed a better setup that will drop straight in and have 
easy configuration of timeouts as well as a better menu arrangement?  A 
web interface and email notifications would be a nice to have too.

If needed, I'm happy to do the work to develop this myself, but would 
rather not re-invent the wheel, if someone else has already done this.


Daniel Reurich
Centurion Computer Technology (2005) Ltd.
021 797 722


Another minor (video-related) bug in SDP parser

I just found another bug (introduced in r2833). In libs/ysdp/parser.cpp in s_rtpmap MP4V-ES/90000 and ILBC/8000 are both mapped into payload id 98, which is wrong with current parsing algorithm. This leads to the following situation:

Incoming call leg SDP:
o=266 3246 585 IN IP4
c=IN IP4
t=0 0
m=audio 7078 RTP/AVP 124 111 110 0 8 101
a=rtpmap:124 opus/48000
a=fmtp:124 useinbandfec=1; usedtx=1
a=rtpmap:111 speex/16000
a=fmtp:111 vbr=on
a=rtpmap:110 speex/8000
a=fmtp:110 vbr=on
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
m=video 9078 RTP/AVP 103 99
a=rtpmap:103 VP8/90000
a=rtpmap:99 MP4V-ES/90000
a=fmtp:99 profile-level-id=3

This is parsed into wrong parameters of call.* messages:
  param['formats_video'] = 'ilbc30'
  param['transport_video'] = 'RTP/AVP'
  param['rtp_mapping_video'] = 'ilbc30=99'
  param['rtp_port_video'] = '9078'

And leads to a invalid SDP on outgoing call leg:
o=yate 1408949745 1408949745 IN IP4
s=SIP Call
c=IN IP4
t=0 0
m=audio 28108 RTP/AVP 103 102 0 8 101
a=rtpmap:103 SPEEX/16000
a=fmtp:103 vbr=on
a=rtpmap:102 SPEEX/8000
a=fmtp:102 vbr=on
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
m=video 17674 RTP/AVP 98
a=rtpmap:98 iLBC/8000
a=fmtp:98 mode=30

The easy fix is to change 98 to some other unused id, 110 for example.

More correct fix would be rewriting of SDP parsing code to avoid mapping of mime type into payload id and then payload id into internal yate format name. It is much better to map mime type directly into format name (using rtp payload id table only in absence of 'rtpmap' attribute), and may be to add some algorithm to map unknown (not listed) formats too (for example, by lowercasing and replacing non-alphabetic chars by hyphens, retaining original mime format name in some new parameter, rtp_${format}_mime for example).
Raj Roy Ghandhi | 22 Aug 11:44 2014

Read Remote-Party-ID in PHP script

I get INVITE from anotehr SIP gateway and it has 
in SIP request

From: "Anonymous" <sip:anonymous-y6j6F8m64KwAvxtiuMwx3w@public.gmane.org:5060>;isup-oli=00;tag=SDngfo301-
Contact: "Anonymous" <sip:anonymous-xG/9gzW8CP+OC1ygWla57w@public.gmane.org10:5060;transport=udp;alias=>;isup-oli=00
Privacy: id
Remote-Party-ID: <sip:50082004-/zGF75lUdwBgJAXftmDEsQ@public.gmane.org:5060>;party=calling;screen=no;privacy=full

I have a PHP script to catch the call and trying to find a way to get the "50082004" from 
Remote-Party-ID header.

Please advice me on this.

Best Regards,

Ciprian ARSENIE | 20 Aug 16:48 2014



can someone help me with a web interface for Yate self made ​​and postgresql

klondike | 20 Aug 16:44 2014

Yate behind NAT ignores nat_address value and sends Contact: and Via with the private address at times (and should also set the transport and maybe port)

Hi guys,

I have been trying to debug the infamous disconnect after 15/16 seconds
issue I'm suffering with yate and linphone.

I have been checking around the list's archives and all I could find was
that yate and SNAT don't work out well
I also remind finding somewhere that linphone used the contact to send
ACKs (and apparently pjsip too which could explain other issues).

The setup is as follows:
router(public IP)---server(private ip)

In ysipchan I set for the listener nat_address=publicIP despite
this some of the replies come with either Via: headers using the local
ip address and Contact headers with that same IP. The result is that
linphone is unable to send the ACK and the connection is lost.

I'm experiencing similar issues with csipsimple where the ACKs are sent
always to UDP port 5060 even when using TLS on port 5061 I'd say this is
caused by not setting the transport=TLS header on the contact headers.

So the question is simple: how can I modify yate to fix these issues?
Where are the values for the Contact and Via headers set so I can get
these values from the listener trying to send the reply?

Raj Roy Ghandhi | 19 Aug 20:14 2014

change a=ptime

I am trying to change the a=ptime:30 to a=ptime::20 in YATE.

But when I add the param osdp_ptime=20; in regexroute for the entry does not do any change.

Please advice me.

Best Regards,
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,