LINUX.ORG.RU

FreePBX замена CID при входящем звонке от оператора

 , ,


0

1

Доброго времени суток, Коллеги.

Подключили еще одного оператора, но при входящих вызовах он отдает номер звонящего 10 знаком, без кода страны (пример мобильного 915ХХХХХХХ). У многих клиентов стоят правила на пропуск россии по шаблону 7ХХХХХХХХХХ и 8ХХХХХХХХХХ. Заставлять переделывать всех клиентов правила наверное не совсем верное решение.

Пример лога:

    -- Executing [5200@from-trunk:1] Set("SIP/hop10-test-0001240d", "__FROM_DID=5200") in new stack
    -- Executing [5200@from-trunk:2] ExecIf("SIP/hop10-test-0001240d", "1 ?Set(CALLERID(name)=915XXXXXXX)") in new stack
    -- Executing [5200@from-trunk:3] Set("SIP/hop10-test-0001240d", "__CALLINGPRES_SV=allowed_not_screened") in new stack
    -- Executing [5200@from-trunk:4] Set("SIP/hop10-test-0001240d", "CALLERPRES()=allowed_not_screened") in new stack
    -- Executing [5200@from-trunk:5] Goto("SIP/hop10-test-0001240d", "ext-trunk,43,1") in new stack
    -- Goto (ext-trunk,43,1)
    -- Executing [43@ext-trunk:1] Set("SIP/hop10-test-0001240d", "TDIAL_STRING=SIP/dx2060") in new stack
    -- Executing [43@ext-trunk:2] Set("SIP/hop10-test-0001240d", "DIAL_TRUNK=43") in new stack
    -- Executing [43@ext-trunk:3] Goto("SIP/hop10-test-0001240d", "ext-trunk,tdial,1") in new stack
    -- Goto (ext-trunk,tdial,1)
    -- Executing [tdial@ext-trunk:1] Set("SIP/hop10-test-0001240d", "OUTBOUND_GROUP=OUT_43") in new stack
    -- Executing [tdial@ext-trunk:2] GotoIf("SIP/hop10-test-0001240d", "1?nomax") in new stack
    -- Goto (ext-trunk,tdial,4)
    -- Executing [tdial@ext-trunk:4] ExecIf("SIP/hop10-test-0001240d", "1?Set(CALLERPRES()=allowed_not_screened)") in new stack
    -- Executing [tdial@ext-trunk:5] Set("SIP/hop10-test-0001240d", "DIAL_NUMBER=5200") in new stack
    -- Executing [tdial@ext-trunk:6] GosubIf("SIP/hop10-test-0001240d", "0?sub-flp-43,s,1") in new stack
    -- Executing [tdial@ext-trunk:7] Set("SIP/hop10-test-0001240d", "OUTNUM=5200") in new stack
    -- Executing [tdial@ext-trunk:8] Dial("SIP/hop10-test-0001240d", "SIP/dx2060/5200,300,") in new stack

Как добавить 7 к CID в данной ситуации?



Последнее исправление: Gib_adm (всего исправлений: 1)
Ответ на: комментарий от zgen

Прошу прощения, господин Шариков. Виноват. Исправил.

Gib_adm
() автор топика

Находишь это место в плане

-- Executing [5200@from-trunk:2] ExecIf(«SIP/hop10-test-0001240d», «1 ?Set(CALLERID(name)=915XXXXXXX)») in new stack

Ставишь следующей командой
Set(CALLERID(name)=7${CALLERID(name))
и/или
Set(CALLERID(num)=7${CALLERID(num))


Теперь у тебя ко всем номерам будет впереди подставляться «7».

Молишься чтобы у тебя в плане не было условных проверок по callerid

Молишься чтобы тебе не звонили из других стран, потому что тогда тоже впереди будет подставляться «7»

zgen ★★★★★
()
Последнее исправление: zgen (всего исправлений: 1)
Ответ на: комментарий от zgen

В этом и проблема. Для всех я могу добавить 7. Но этот вариант не подходит, т.к. из других стран тоже звонят. Поэтому нужно добавлять 7 только определённым номерам.

Gib_adm
() автор топика
Ответ на: комментарий от Gib_adm

ну ты на словах определись сначала, каким именно номерам ты хочешь добавлять. Машина магию не умеет делать, только алгоритм.

zgen ★★★★★
()
Ответ на: комментарий от zgen

Я как бы и писал в первом посте, что оператор не передаёт код страны России. Соответственно на все коды России. Например для таких: 4ХХХХХХХХХ (м мо) 9ХХХХХХХХХ (мобильные)

Gib_adm
() автор топика
Ответ на: комментарий от Gib_adm

Ты вменяемый?

Компьютер не знает, что такое «на все коды россии», ты сам должен ему сказать, какой код россии, а какой - нет.

Как ты это собираешься делать, ты сам знаешь что код россии, а что - нет?

zgen ★★★★★
()
Последнее исправление: zgen (всего исправлений: 1)
Ответ на: комментарий от zgen

Ты читать умеешь вообще? Я же написал: Например для таких: 4ХХХХХХХХХ (м мо) 9ХХХХХХХХХ (мобильные)

Gib_adm
() автор топика
Ответ на: комментарий от Gib_adm

Я вижу интеллект у тебя как у пробки. Сам нихера не знаешь, и еще вопишь тут.

Freepbx не знает как вычислять твоё «например», для м-мо и мобильных ты сделал, а код например барнаула под твой «например» не подходит. Он тебе не нужен? Он не россия? Откуда, как тебе кажется, Freepbx должен про коды рязяни или абакана знать?

Знать должен ты, и я тебя спрашиваю, ты сам то умеешь определять по «обрезанному» номеру - россия это или нет? И если ты умеешь (я - нет) то как конкретно ты это делаешь, чтобы твои действия можно было алгоритмизировать и вписать в диалплан.

Тебе вроде надо, не мне, а гонору столько, будто ты мне денег заплатил.

zgen ★★★★★
()
Ответ на: комментарий от zgen

Для начала мне надо М, МО и мобильные (добавить к ним 7), для этого и написал пример. Коды 495, 499, мобильные 9ХХ, дальше идет 7 знак любой.

А хамить ты мне начал первый. Но это больше претензия к твоим родителям. Не дали должного воспитания. Не твоя вина.

А денег за что тебе, за хамство? Нет ничего хуже чем хам и невежда. Так что тебе денег точно не стал платить. Даже если бы ты сосал как пылесос.

Gib_adm
() автор топика
Последнее исправление: Gib_adm (всего исправлений: 1)
Ответ на: комментарий от Gib_adm

А денег за что тебе, за хамство

За то что молча терплю твой низкий интеллект, когда на нормальные вопросы ты начинаешь вякать, что всё уже написал.

Вставляй в свой диалплан, если первые 3 цифры будут 495, 499
или первая цифра 9 - будет подставляться 7 перед номером, иначе будет оставаться таким же, каким был. (Вот тут тебе шпаргалка по «set»: https://www.voip-info.org/asterisk-func-if/)

n,Set(CALLERID(num)=${IF($[ ${CALLERID(num):3} = 495 ]?7${CALLERID(num)}:${CALLERID(num)})})
n,Set(CALLERID(num)=${IF($[ ${CALLERID(num):3} = 499 ]?7${CALLERID(num)}:${CALLERID(num)})})
n,Set(CALLERID(num)=${IF($[ ${CALLERID(num):1} = 9 ]?7${CALLERID(num)}:${CALLERID(num)})})

Будешь обслуживать asterisk - лучше прочитай книжку,
http://atsip.ru/pomoshch/kniga-asterisk-budushchee-telefonii-4-redaktsiya/355...

zgen ★★★★★
()
Последнее исправление: zgen (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.