Nitesh Divecha | 17 Oct 18:38 2014

SIP->M3UA->Switch

Hello All,

I'm trying to figure out if this is even possible or alternate solution.

Nextone -> SIP -> Yate -> M3UA -> Switch

I'm new to Yate and world of SS7/M3UA but familiar with SIP/H323.

I have installed and configured Yate with SIP and I was able to place a successful call from Nextone->SIP->Yate->SIP->Bria Dialer with audio both-ways.

Now my next task is to work on Yate->M3UA->Switch, which I got no clue or even not sure if its possible.

Need some help or guidelines on how I can start working on Yate->M3UA->Switch. How can I place a successful call from Nextone->SIP->Yate->M3UA->Switch->remoteCaller.

Any feedback or help will be highly appreciated. Thanking in advance.

-- Cheers, Nitesh
Yu Boot | 10 Oct 15:55 2014
Picon

Writing debug JS module

I try to write simple debug JS module that will log some information on 
call disconnect:

function onDisconnected(msg) {
Engine.debug(Engine.DebugInfo,"Reason: '" + msg.reason + "' ID: '" + 
msg.id + "'");
return false;
}
Message.install(onDisconnected,"chan.disconnected",80);

How to:
1. get and print all msg parameters?
2. make it visible in log, except "debug javascript on"?

Yu Boot | 10 Oct 13:51 2014
Picon

Re: multi-level routing

I use this to block something:

...
^456\(.*\)$=-;error=forbidden


10.10.2014 15:43, Rafayel Khachikyan пишет:
<!-- .hmmessage P { margin:0px; padding:0px } body.hmmessage { font-size: 12pt; font-family:Calibri } -->
Thanks Yu,
 
I don't have [context] section.
So finally it will have this view:
 
 
[from_internal]
${address}^11\.11\.11\.2:=jump operator_1
${address}^11\.11\.11\.3:=jump operator_2

 
[operator_1]
^1\(.*\)$=sip/sip:\0;line=line_1
^2\(.*\)$=sip/sip:\0;line=line_1
.*=jump common

[operator_2]
^1\(.*\)$=sip/sip:\0;line=line_2
^2\(.*\)$=sip/sip:\0;line=line_2
.* jump common
 

[common]
^123\(.*\)$=sip/sip:\0;line=line_3
^456\(.*\)$=sip/sip:\0;line=line_4
^789\(.*\)$=sip/sip:\0;line=line_5
...
...

And one more question - if for example I want to disable 456 (which is used in [common]) for operator_2, such config should work, yes?

 
[operator_2]
^1\(.*\)$=sip/sip:\0;line=line_2
^2\(.*\)$=sip/sip:\0;line=line_2
^456\(.*\)$=error=403;reason=Forbidden
.* jump common
 
 
Thanks again for support.
/Rafayel 
 
Date: Fri, 10 Oct 2014 11:53:04 +0400
From: yu-kmYC+cp5Ag0vJsYlp49lxw@public.gmane.org
To: yate-uHKunLg9Q/3XMkR9fcqaOA@public.gmane.org
Subject: Re: [yate] multi-level routing

Sorry, my little mistake:


${address}^11\.11\.11\.2:=jump operator_1
${address}^11\.11\.11\.3:=jump operator_2

And finally if this IP address checking occurs in [context] section, you don't need "jump" keyword for this:

[context]
....
${address}^11\.11\.11\.2:=operator_1
${address}^11\.11\.11\.3:=operator_2
....



10.10.2014 10:57, Rafayel Khachikyan пишет:
<!-- .ExternalClass .ecxhmmessage P { padding:0px; } .ExternalClass body.ecxhmmessage { font-size:12pt; font-family:Calibri; } -->
Hello guys,
 
Is there a possibility to have two- or more level call routing in regex file? Something like example below :
 
 
 
${address}^11\.11\.11\.2:=goto operator_1
${address}^11\.11\.11\.3:=goto operator_2
 

[operator_1]
^1\(.*\)$=sip/sip:\0;line=line_1
^2\(.*\)$=sip/sip:\0;line=line_1
forward the rest to [common]
;end
 
 
[operator_2]
^1\(.*\)$=sip/sip:\0;line=line_2
^2\(.*\)$=sip/sip:\0;line=line_2
forward the rest to [common]
;end
 

[common]
^123\(.*\)$=sip/sip:\0;line=line_3
^456\(.*\)$=sip/sip:\0;line=line_4
^789\(.*\)$=sip/sip:\0;line=line_5
...
...
;end
 
 
 
 
Thanks.
 
/Rafayel


Yu Boot | 10 Oct 09:50 2014
Picon

Yate5 config examples

Anyone, please send me your regex/ysipchan/yrtpchan/yate.conf configs 
from your working machines. Just want to finally solve my issue with 
random disconnects.

yu@...

Rafayel Khachikyan | 10 Oct 08:57 2014

multi-level routing

Hello guys,
 
Is there a possibility to have two- or more level call routing in regex file? Something like example below :
 
 
 
${address}^11\.11\.11\.2:=goto operator_1
${address}^11\.11\.11\.3:=goto operator_2
 

[operator_1]
^1\(.*\)$=sip/sip:\0;line=line_1
^2\(.*\)$=sip/sip:\0;line=line_1
forward the rest to [common]
;end
 
 
[operator_2]
^1\(.*\)$=sip/sip:\0;line=line_2
^2\(.*\)$=sip/sip:\0;line=line_2
forward the rest to [common]
;end
 

[common]
^123\(.*\)$=sip/sip:\0;line=line_3
^456\(.*\)$=sip/sip:\0;line=line_4
^789\(.*\)$=sip/sip:\0;line=line_5
...
...
;end
 
 
 
 
Thanks.
 
/Rafayel
Yu Boot | 9 Oct 17:40 2014
Picon

Help! Random calls disconnects

Help me please! Just got crazy about it.

Yate randomly sends "BYE" to clients in the middle of conversation 
without any visible reason. It happens few dozens times a day on random 
clients. Network is OK, no ping loss, no delays, no overload etc. 
Unfortunately I can't to turn on message sniffer or even tshark all (in 
and out) SIP traffic due to huge amount of calls. All I can is tcpdump 
client IP only for a day or two and then open dump file in Wireshark

http://tinypic.com/r/295uyyb/8 - it's how it looks in Wireshark on 
tcpdump'ed file from Yate.

78 IP is Yate, 38 is a client.

What parameters, timers, conditions, etc AT ALL can cause that Yate 
behaviour? Yate was specially moved to quad core Xeon with 8GB RAM for 
only 150-160 concurrent SIP sessions, machine is faaaaaar underloaded, 
and this didn't help. Fresh installed CentOS 6.5 with all updates, 
latest Yate 5.4.1 devel1 r5915, G729 codec from yate.hosting.lv

I can provide any Yate logs and configs to solve this problem, without 
message sniffer and total "tcpdump port sip", of course.

Torsten Römer | 9 Oct 12:18 2014
Picon

DTMF keys dropped/delivered in wrong order

Hello,

I am working on an IVR using extmodule and during some extreme testing, 
I have noticed that sometimes DTMF keys are dropped or delivered in the 
wrong order.

For example, when repeatedly entering the sequence 123456789, the first 
50 or so keys arrive in the correct order but then it starts to get out 
of sequence:

<yrtp:INFO> YRTPWrapper::gotDTMF('1') [0x7f7798013780]
<yrtp:INFO> YRTPWrapper::gotDTMF('3') [0x7f7798013780]
<yrtp:INFO> YRTPWrapper::gotDTMF('4') [0x7f7798013780]
<yrtp:INFO> YRTPWrapper::gotDTMF('6') [0x7f7798013780]
<yrtp:INFO> YRTPWrapper::gotDTMF('7') [0x7f7798013780]
<yrtp:INFO> YRTPWrapper::gotDTMF('8') [0x7f7798013780]
<yrtp:INFO> YRTPWrapper::gotDTMF('9') [0x7f7798013780]
<yrtp:INFO> YRTPWrapper::gotDTMF('2') [0x7f7798013780]
<yrtp:INFO> YRTPWrapper::gotDTMF('3') [0x7f7798013780]

It seems this is more likely to happen with a slow/laggy connection like 
a GSM phone.

I have read something about possible issues with DTMF over RTP and 
distorted DTMF tones - is this a known issue with DTMF key transmission 
and is there something that can be done about it?

Torsten

Rodrigo Ricardo Passos | 23 Apr 14:36 2014
Picon

Get number in SAM

Hi Yate,

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

Regards,

Rodrigo

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:

[1000]
password=1234

[2000]
password=1234

Then in regexroute.conf I defined:

^100$=queue/test1

Finally test1 is defined  in the queue.conf file :

[channels]
incoming=external/nodata/queue_in.php
outgoing=external/nodata/queue_out.php

[queue test1]
mintime = 100
length= 100
maxout=10
;greeting=
onhold=wave/play/ test.wav
maxcall=10000
;prompt=
;notify
detail=true
single=true
;definition of the operator
${queue} = test1
${required} = 1
${current} = 1
;  ${waiting}
location=127.0.0.1
username=2000
  maxcall = 3000
;  prompt: string: Resource to play to the operator when it answers
enabled=true

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,

Jose

Moritz Orbach | 18 Mar 19:47 2014
Picon

Authentication-check in javascript

Hello all,

is there a javascript equivalent to regexroute's
${username}^$=-;error=noauth

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
exist.

Best regards
Moritz

Paul Chitescu | 18 Mar 14:06 2014
Picon

Yate 5.2 and YateBTS 2.0

Hello everybody!

We released Yate version 5.2 and also version 2.0 of YateBTS.

Yate 5.2 brings:
- Our friendly chatbot Eliza answers you by default to anything you write in 
rmanager that's not an Yate command :-)
- Improvements in Javascript that make writing an IVR much easier
- Better troubleshooting of memory leaks by having memory information from 
glibc and the ability to count objects allocated by each module

YateBTS 2.0 added:
- Support for 2G (COMP128-1) and 3G (MILENAGE) authentication
- Web interface for the Network In a Box
- USSD support (in commercial version only)
- COMP128-2 and COMP128-3 (in commercial version, only for GSMA members)

Paul Chitescu & Null Team


Gmane