First time here? Check out the FAQ!

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

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

спросил Mar 31 '11

arootkov Gravatar arootkov
41 15 5 14

обновил Mar 31 '11

5 Ответов

0

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

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

ответил Mar 31 '11

Bracus Gravatar Bracus
110 4 3 7

Comments

А что именно интересует? arootkov (Mar 31 '11)edit
Какой командой? Извини arootkov (Mar 31 '11)edit
интересуют настройки именно самих транков в системе, в Elastix есть же интерфейс? ты там скорее всего создавал транки ну типа : host=XXX.XXX.XXX username=fddsfd и т.д. возможно у тебя там прописано имя контекста которым обрабатываются входящие звонки. И ты говоришь отчеты по входящим звонкам, как ты их формируешь по каким именно логам? cdr? queuelog? какие фильтры ты применяешь? тебя именно интересует поступление звонков через конкретный транк или на конкретный номер(DID). Я например формирую отчеты по входящим на конкретный номер(DID) у меня на один транк приходят 2-а номера и я их различаю так в таблицу CDR в поле accountcode пишу переменную FROMDID Bracus (Mar 31 '11)edit
Попробуй убрать опцию insecure=invite(так как она отменяет авторизацию по имени и паролю) и изменить type=peer на type=friend. У тебя получается что все входящие звонки определяет один транк который первый в списке. А что отчет я говорю что можно и другим образом фильтровать звонки. Хотя смотря что именно тебе нужно Bracus (Mar 31 '11)edit
Если я убераю опцию insecure=invite то звонки вообще не проходят. Видимо манго переадресует звонок на просто запрос без пароля. arootkov (Mar 31 '11)edit
может быть, может быть они еще переадресуют на другой порт попробуй просто insecure=port. Если же нет общайся с ними если уж тебе так нужно именно звонки по транкам делить. чтобы либо тебе инвайтом авторизацию слали, или с другого ип Bracus (Mar 31 '11)edit
н еполучиться ничего те. провайдер то один. скорее всего с одного порта приходит. реализация множества портов для провайдера утопично. ибо сильно сложно. meral (Mar 31 '11)edit
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
ссылка удалить спам редактировать

ответил Mar 31 '11

arootkov Gravatar arootkov
41 15 5 14
0

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

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

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

ответил Mar 31 '11

arootkov Gravatar arootkov
41 15 5 14

Comments

Попробуй убрать опцию insecure=invite(так как она отменяет авторизацию по имени и паролю) и изменить type=peer на type=friend. У тебя получается что все входящие звонки определяет один транк который первый в списке. А что отчет(ты значит юзаешь стандартный функционал) я говорю что можно и другим образом фильтровать звонки. Хотя смотря что именно тебе нужно - Bracus (1 минуту назад)редактировать Bracus (Mar 31 '11)edit
А каким еще образом можно получить внятный отчет, при том, что входящие звонки идут на один транк? Как разделить отчет по номерам? arootkov (Mar 31 '11)edit
Я писал как у меня Bracus (Mar 31 '11)edit
0

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

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

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

ответил Mar 31 '11

Bracus Gravatar Bracus
110 4 3 7

обновил Mar 31 '11

Comments

стандартная тулза для freepbx крайне просто - всего двумя строчкми допиливаеться для отображения и поиск по любому полю в сдр ;) преимущество перед самопальным решением - графики и быстрота изменения ;) meral (Mar 31 '11)edit
0

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

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

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

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

ответил Mar 31 '11

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

обновил Mar 31 '11

Comments

Спасибо за то что ткнули носом. Буду разбираться. Платить кому то, кто это уже знает это не наш вариант. Я выучу все потом будут платить мне. arootkov (Apr 1 '11)edit
ну тут ситуация приблизительно такая: вот например кофемолку вы ж не пытаетесь сами отремонтировать? вы то выучите, да. и даже чтото сделаете. НО к сожалению вот даже я со специализацией ТОЛЬКО в астриске за последние 7 лет и карйне обширной практикой РАЗРАБОТКИ для него, все еше не являюсь специалистом во всех связанных областях. специалист широкого профиля потратит нереально большее количество времени. ибо он физически не в состоянии следить за изменением в астрсике. и занния просто теряют актуальность. вобщем если вы собрались работать в данной области - учите. если это разовая настройка - вам это нафиг не надо и не окупиться. лучше учите чтото в вашей области. повышайте уровень meral (Apr 2 '11)edit

Ваш ответ

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 ленту новостей

Статистика

Задан: Mar 31 '11

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

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

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