amooma/GS3

outgoing callerid regex not correct processed if a comma in the regex

Closed this issue · 2 comments

If you set the outgoing callerid in the gateway, the normal regex s/^(.*)/5234567$1/ every thing works fine.
But if you set e.g. s/^(.{1,4})$/5234567$1/ the regex will get split in our_route.agi.

The log shows this:

gemeinschaft*CLI> 
 /opt/gemeinschaft/dialplan-scripts/out-route.agi,0017xxxxxx1,no,9999,31: ### -GS- Processing CID RegExp: ^(.{1\
gemeinschaft*CLI> 
 /opt/gemeinschaft/dialplan-scripts/out-route.agi,0017xxxxxx1,no,9999,31: ### -GS- Processing CID RegExp: 4})$
gemeinschaft*CLI> 
    -- <SIP/9999-00000273>AGI Script /opt/gemeinschaft/dialplan-scripts/out-route.agi completed, returning 0

But it should look like this:

gemeinschaft*CLI> 
 /opt/gemeinschaft/dialplan-scripts/out-route.agi,0017xxxxxx1,no,9999,31: ### -GS- Processing CID RegExp: ^(.{1,4})$
gemeinschaft*CLI> 
 /opt/gemeinschaft/dialplan-scripts/out-route.agi,0017xxxxxx1,no,9999,31: ### -GS- Qualifying caller ID "9999" -> "52345679999" (s/^(.{1,4})$/5234567$1/) for gategroup "patton-pstn"

The code where it breaks is in line 216 and 217, where is the code snip of out-route.agi:

$ggrp['cid_s'] = trim($ggrp['cid_s']);
if ($ggrp['cid_s'] != '' &&
 ($ggrp_cid_s_a = explode(',',$ggrp['cid_s'])) &&
 ($ggrp_cid_r_a = explode(',',$ggrp['cid_r']))
 )

The Dialplan behaves as expected.

Komma is used to seperate different regular expressions in one Gateway group.

The disadvantage is, that you can not use a regex with ','. You need to to write it in a different way.

The advantage is, that you can use several regular expressions with different substitutions on a trunk with several head numbers.

Greeta Sascha

Am 16.07.2013 um 21:06 schrieb Daniel Müller notifications@github.com:

If you set the outgoing callerid in the gateway, the normal regex s/^(.*)/5234567$1/ every thing works fine.
But if you set e.g. s/^(.{1,4})$/5234567$1/ the regex will get split in our_route.agi.

The log shows this:

gemeinschaft_CLI>
/opt/gemeinschaft/dialplan-scripts/out-route.agi,0017xxxxxx1,no,9999,31: ### -GS- Processing CID RegExp: ^(.{1
gemeinschaft_CLI>
/opt/gemeinschaft/dialplan-scripts/out-route.agi,0017xxxxxx1,no,9999,31: ### -GS- Processing CID RegExp: 4})$
gemeinschaft*CLI>
-- <SIP/9999-00000273>AGI Script /opt/gemeinschaft/dialplan-scripts/out-route.agi completed, returning 0
But it should look like this:

gemeinschaft_CLI>
/opt/gemeinschaft/dialplan-scripts/out-route.agi,0017xxxxxx1,no,9999,31: ### -GS- Processing CID RegExp: ^(.{1,4})$
gemeinschaft_CLI>
/opt/gemeinschaft/dialplan-scripts/out-route.agi,0017xxxxxx1,no,9999,31: ### -GS- Qualifying caller ID "9999" -> "52345679999" (s/^(.{1,4})$/5234567$1/) for gategroup "patton-pstn"
The code where it breaks is in line 216 and 217, where is the code snip of out-route.agi:

$ggrp['cid_s'] = trim($ggrp['cid_s']);
if ($ggrp['cid_s'] != '' &&
($ggrp_cid_s_a = explode(',',$ggrp['cid_s'])) &&
($ggrp_cid_r_a = explode(',',$ggrp['cid_r']))
)

Reply to this email directly or view it on GitHub.

I've changed the separation sign to ';'. So I can use the regex and could implement more expressions.
A little hint that a comma is used to separate several regular expressions would have been nice.