Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Elastix отчеты транки

0

Добрый день коллеги!

Обнаружил вот такую интересную штуку.

Дано sip провайдер манго телеком.

От него приходят два городских номера.

В панели манги каждый номер переадресуется на свою sip учетку.

Тем не менее ошибка или грук из разряда фантастики.

Когда приходит звонок на учетку "А" в системе видно что задействован транк "А", но когда приходит звонок на учетку "Б" в системе видно что используется транк "А".

Из за этого отчеты по входящим звонкам как вы догадаетесь не верны.

Прошу руку помощи!

Спасибо

Ниже привожу логи из консоли

sip show registry
Host                           dnsmgr Username       Refresh State                Reg.Time                 
mangosip.ru:5060               N      A16576383P1        285 Registered           Thu, 31 Mar 2011 09:57:18
mangosip.ru:5060               N      A16602104P1        285 Registered           Thu, 31 Mar 2011 09:57:03
2 SIP registrations.
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
  == Using SIP VRTP TOS bits 136
  == Using SIP VRTP CoS mark 6
    -- Executing [5851052@from-trunk:1] Set("SIP/9262636-0000171d", "__FROM_DID=5851052") in new stack
    -- Executing [5851052@from-trunk:2] Gosub("SIP/9262636-0000171d", "app-blacklist-check,s,1") in new stack
    -- Executing [s@app-blacklist-check:1] GotoIf("SIP/9262636-0000171d", "0?blacklisted") in new stack
    -- Executing [s@app-blacklist-check:2] Set("SIP/9262636-0000171d", "CALLED_BLACKLIST=1") in new stack
    -- Executing [s@app-blacklist-check:3] Return("SIP/9262636-0000171d", "") in new stack
    -- Executing [5851052@from-trunk:3] ExecIf("SIP/9262636-0000171d", "0 ?Set(CALLERID(name)=74956474818)") in new stack
    -- Executing [5851052@from-trunk:4] Set("SIP/9262636-0000171d", "__CALLINGPRES_SV=allowed_not_screened") in new stack
    -- Executing [5851052@from-trunk:5] Set("SIP/9262636-0000171d", "CALLERPRES()=allowed_not_screened") in new stack
    -- Executing [5851052@from-trunk:6] Goto("SIP/9262636-0000171d", "timeconditions,2,1") in new stack
    -- Goto (timeconditions,2,1)
    -- Executing [2@timeconditions:1] GotoIfTime("SIP/9262636-0000171d", "08:00-21:00,*,*,*?ivr-6,s,1") in new stack
    -- Goto (ivr-6,s,1)
    -- Executing [s@ivr-6:1] Set("SIP/9262636-0000171d", "MSG=custom/GKSEELINE") in new stack
    -- Executing [s@ivr-6:2] Set("SIP/9262636-0000171d", "LOOPCOUNT=0") in new stack
    -- Executing [s@ivr-6:3] Set("SIP/9262636-0000171d", "__DIR-CONTEXT=") in new stack
    -- Executing [s@ivr-6:4] Set("SIP/9262636-0000171d", "_IVR_CONTEXT_ivr-6=") in new stack
    -- Executing [s@ivr-6:5] Set("SIP/9262636-0000171d", "_IVR_CONTEXT=ivr-6") in new stack
    -- Executing [s@ivr-6:6] GotoIf("SIP/9262636-0000171d", "0?begin") in new stack
    -- Executing [s@ivr-6:7] Answer("SIP/9262636-0000171d", "") in new stack
    -- Executing [s@ivr-6:8] Wait("SIP/9262636-0000171d", "1") in new stack
    -- Executing [s@ivr-6:9] Set("SIP/9262636-0000171d", "TIMEOUT(digit)=3") in new stack
    -- Digit timeout set to 3.000
    -- Executing [s@ivr-6:10] Set("SIP/9262636-0000171d", "TIMEOUT(response)=1") in new stack
    -- Response timeout set to 1.000
    -- Executing [s@ivr-6:11] Set("SIP/9262636-0000171d", "__IVR_RETVM=") in new stack
    -- Executing [s@ivr-6:12] ExecIf("SIP/9262636-0000171d", "1?Background(custom/GKSEELINE)") in new stack
    -- <SIP/9262636-0000171d> Playing 'custom/GKSEELINE.gsm' (language 'ru')
  == Spawn extension (ivr-6, s, 12) exited non-zero on 'SIP/9262636-0000171d'
    -- Executing [h@ivr-6:1] Hangup("SIP/9262636-0000171d", "") in new stack
  == Spawn extension (ivr-6, h, 1) exited non-zero on 'SIP/9262636-0000171d'
ats*CLI> 
Disconnected from Asterisk server
Executing last minute cleanups

ниже звонок на второй номер

- Executing [9262636@from-trunk:1] Set("SIP/9262636-00001725", "__FROM_DID=9262636") in new stack
    -- Executing [9262636@from-trunk:2] Gosub("SIP/9262636-00001725", "app-blacklist-check,s,1") in new stack
    -- Executing [s@app-blacklist-check:1] GotoIf("SIP/9262636-00001725", "0?blacklisted") in new stack
    -- Executing [s@app-blacklist-check:2] Set("SIP/9262636-00001725", "CALLED_BLACKLIST=1") in new stack
    -- Executing [s@app-blacklist-check:3] Return("SIP/9262636-00001725", "") in new stack
    -- Executing [9262636@from-trunk:3] ExecIf("SIP/9262636-00001725", "0 ?Set(CALLERID(name)=74956474818)") in new stack
    -- Executing [9262636@from-trunk:4] Set("SIP/9262636-00001725", "__CALLINGPRES_SV=allowed_not_screened") in new stack
    -- Executing [9262636@from-trunk:5] Set("SIP/9262636-00001725", "CALLERPRES()=allowed_not_screened") in new stack
    -- Executing [9262636@from-trunk:6] Goto("SIP/9262636-00001725", "timeconditions,1,1") in new stack
    -- Goto (timeconditions,1,1)
    -- Executing [1@timeconditions:1] GotoIfTime("SIP/9262636-00001725", "09:00-21:00,*,*,*?ivr-4,s,1") in new stack
    -- Goto (ivr-4,s,1)
    -- Executing [s@ivr-4:1] Set("SIP/9262636-00001725", "MSG=custom/file2gsm") in new stack
    -- Executing [s@ivr-4:2] Set("SIP/9262636-00001725", "LOOPCOUNT=0") in new stack
    -- Executing [s@ivr-4:3] Set("SIP/9262636-00001725", "__DIR-CONTEXT=") in new stack
    -- Executing [s@ivr-4:4] Set("SIP/9262636-00001725", "_IVR_CONTEXT_ivr-4=") in new stack
    -- Executing [s@ivr-4:5] Set("SIP/9262636-00001725", "_IVR_CONTEXT=ivr-4") in new stack
    -- Executing [s@ivr-4:6] GotoIf("SIP/9262636-00001725", "0?begin") in new stack
    -- Executing [s@ivr-4:7] Answer("SIP/9262636-00001725", "") in new stack
    -- Executing [s@ivr-4:8] Wait("SIP/9262636-00001725", "1") in new stack
    -- Executing [s@ivr-4:9] Set("SIP/9262636-00001725", "TIMEOUT(digit)=3") in new stack
    -- Digit timeout set to 3.000
    -- Executing [s@ivr-4:10] Set("SIP/9262636-00001725", "TIMEOUT(response)=1") in new stack
    -- Response timeout set to 1.000
    -- Executing [s@ivr-4:11] Set("SIP/9262636-00001725", "__IVR_RETVM=") in new stack
    -- Executing [s@ivr-4:12] ExecIf("SIP/9262636-00001725", "1?Background(custom/file2gsm)") in new stack
    -- <SIP/9262636-00001725> Playing 'custom/file2gsm.gsm' (language 'ru')
  == Spawn extension (ivr-4, s, 12) exited non-zero on 'SIP/9262636-00001725'
    -- Executing [h@ivr-4:1] Hangup("SIP/9262636-00001725", "") in new stack
удалить закрыть спам изменить тег редактировать

спросил 2011-03-31 09:48:34 +0400

arootkov Gravatar arootkov
41 15 5 14

обновил 2011-03-31 10:00:43 +0400

5 Ответов

0

настройки обоих транков покажи

ссылка удалить спам редактировать

ответил 2011-03-31 10:15:10 +0400

Bracus Gravatar Bracus
110 4 3 7

Comments

А что именно интересует? arootkov ( 2011-03-31 10:17:36 +0400 )редактировать
Какой командой? Извини arootkov ( 2011-03-31 10:18:17 +0400 )редактировать
интересуют настройки именно самих транков в системе, в Elastix есть же интерфейс? ты там скорее всего создавал транки ну типа : host=XXX.XXX.XXX username=fddsfd и т.д. возможно у тебя там прописано имя контекста которым обрабатываются входящие звонки. И ты говоришь отчеты по входящим звонкам, как ты их формируешь по каким именно логам? cdr? queuelog? какие фильтры ты применяешь? тебя именно интересует поступление звонков через конкретный транк или на конкретный номер(DID). Я например формирую отчеты по входящим на конкретный номер(DID) у меня на один транк приходят 2-а номера и я их различаю так в таблицу CDR в поле accountcode пишу переменную FROMDID Bracus ( 2011-03-31 10:34:46 +0400 )редактировать
Попробуй убрать опцию insecure=invite(так как она отменяет авторизацию по имени и паролю) и изменить type=peer на type=friend. У тебя получается что все входящие звонки определяет один транк который первый в списке. А что отчет я говорю что можно и другим образом фильтровать звонки. Хотя смотря что именно тебе нужно Bracus ( 2011-03-31 10:54:20 +0400 )редактировать
Если я убераю опцию insecure=invite то звонки вообще не проходят. Видимо манго переадресует звонок на просто запрос без пароля. arootkov ( 2011-03-31 12:53:12 +0400 )редактировать
может быть, может быть они еще переадресуют на другой порт попробуй просто insecure=port. Если же нет общайся с ними если уж тебе так нужно именно звонки по транкам делить. чтобы либо тебе инвайтом авторизацию слали, или с другого ип Bracus ( 2011-03-31 13:53:41 +0400 )редактировать
н еполучиться ничего те. провайдер то один. скорее всего с одного порта приходит. реализация множества портов для провайдера утопично. ибо сильно сложно. meral ( 2011-03-31 15:37:12 +0400 )редактировать
0

Настройки транка номера 9262636

type=peer
secret=
nat=no
insecure=invite
host=mangosip.ru
hassip=yes
hasiax=no
hasexten=no
fromuser=A16602104P1
fromdomain=mangosip.ru
dtmfmode=rfc2833
disallow=all
defaultuser=A16602104P1
context=from-trunk
canreinvite=nonat
allow=alaw&ulaw&g729

настройки транка номера 5851052

type=peer
secret=
nat=no
insecure=invite
host=mangosip.ru
hassip=yes
hasiax=no
hasexten=no
fromuser=A16576383P1
fromdomain=mangosip.ru
dtmfmode=rfc2833
disallow=all
defaultuser=A16576383P1
context=from-trunk
canreinvite=nonat
allow=alaw&ulaw&g729
ссылка удалить спам редактировать

ответил 2011-03-31 10:38:08 +0400

arootkov Gravatar arootkov
41 15 5 14
0

Я хочу получить графический отчет. Захожу в Reports > Graphic Repor > выбираю Trunks > и выбираю транк.

В этой статистике я должен получить без детализации сколько звонков было на тракн. Так вот проблема звонки с разных номеров приходят на один транк

ссылка удалить спам редактировать

ответил 2011-03-31 10:51:30 +0400

arootkov Gravatar arootkov
41 15 5 14

Comments

Попробуй убрать опцию insecure=invite(так как она отменяет авторизацию по имени и паролю) и изменить type=peer на type=friend. У тебя получается что все входящие звонки определяет один транк который первый в списке. А что отчет(ты значит юзаешь стандартный функционал) я говорю что можно и другим образом фильтровать звонки. Хотя смотря что именно тебе нужно - Bracus (1 минуту назад)редактировать Bracus ( 2011-03-31 10:57:16 +0400 )редактировать
А каким еще образом можно получить внятный отчет, при том, что входящие звонки идут на один транк? Как разделить отчет по номерам? arootkov ( 2011-03-31 14:04:57 +0400 )редактировать
Я писал как у меня Bracus ( 2011-03-31 14:55:51 +0400 )редактировать
0

Я писал как у меня сделано подобное, переменная _FROMDID, которая имеет значение номера на который пришел звонок _FROMDID=9262636 и _FROMDID=5851052 в твоем случае может позволить определить на какой номер был совершен звонок. У меня FreePBX я немного модифицировал диалплан и по завершению вызова пишу эту переменную в CDR в свободное для меня поле accountcode [macro-hangupcall] exten => s,n(theend),Set(CDR(accountcode)=${FROM_DID})

А сами отчеты уже формирую отдельными средствами посредством запросов к таблице CDR, условием что dst это один из внутренних номеров, значит это был входящий звонок

ссылка удалить спам редактировать

ответил 2011-03-31 15:03:17 +0400

Bracus Gravatar Bracus
110 4 3 7

обновил 2011-03-31 15:06:26 +0400

Comments

стандартная тулза для freepbx крайне просто - всего двумя строчкми допиливаеться для отображения и поиск по любому полю в сдр ;) преимущество перед самопальным решением - графики и быстрота изменения ;) meral ( 2011-03-31 15:36:02 +0400 )редактировать
0

попытаюсь обьяснить порблему. вот посмотрите, у вас в обих тарнках провайдер один, правильно? вот от этого провайдера идет входящий звонок. КАК астериск может понять, что звонок на другой транк? адрес и порт совпадают. больше ничего о провайдере он не знает. если вы думаете что провайдер посылает username- это может и так(5% шанс), но астериск это не сверяет. ибо звонок входящий и он являеться клиентской стороной.

выход из этой ситуации - посмотреть чем отличаються звонки реально- это если они вообще отичаются. и поставить какойто флажок. после записать его в сдр и поменять сами сдр либо поменять веб чтоб он этот флажок использовал. в любом случае это не совсем тривиально сделать, и требует неких начальных познаний в сопуствующих технологих. имхо вам проще нанять специалиста, для которого это 20 минут работы. для вас это может быть несколько дней. и не факт что вы это сделаете. хотите сами? начните вот с такого:

порчитайте ответ про from _ did и попытайтесь понять что человек хотел вам сказать.

ссылка удалить спам редактировать

ответил 2011-03-31 15:33:17 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

обновил 2011-03-31 15:34:32 +0400

Comments

Спасибо за то что ткнули носом. Буду разбираться. Платить кому то, кто это уже знает это не наш вариант. Я выучу все потом будут платить мне. arootkov ( 2011-04-01 09:44:48 +0400 )редактировать
ну тут ситуация приблизительно такая: вот например кофемолку вы ж не пытаетесь сами отремонтировать? вы то выучите, да. и даже чтото сделаете. НО к сожалению вот даже я со специализацией ТОЛЬКО в астриске за последние 7 лет и карйне обширной практикой РАЗРАБОТКИ для него, все еше не являюсь специалистом во всех связанных областях. специалист широкого профиля потратит нереально большее количество времени. ибо он физически не в состоянии следить за изменением в астрсике. и занния просто теряют актуальность. вобщем если вы собрались работать в данной области - учите. если это разовая настройка - вам это нафиг не надо и не окупиться. лучше учите чтото в вашей области. повышайте уровень meral ( 2011-04-02 07:10:32 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2011-03-31 09:48:34 +0400

Просмотрен: 2,848 раз

Обновлен: Mar 31 '11

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.