VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Elastix 2.3.0 автоматический трансфер на внешний номер

Обо всем касательно FreePBX, MetPBX, TrixBox, Elastix, AstPBX и всех других дистрибутивов

Модераторы: april22, Zavr2008

papandoz
Сообщения: 13
Зарегистрирован: 08 июл 2012, 22:55

Elastix 2.3.0 автоматический трансфер на внешний номер

Сообщение papandoz »

Всем хорошего настроения!
прошу прощения за подробности, стараюсь ничего не упустить :)

Автоматическая переадресация странно работает

Конфигурация системы: сервер Elastix 2.3.0 находится во внутренней сети за роутером.
в сети стоят телефоны циско 7940.
подключен 15 канальный сип номер(городской) у провайдера
входящие исходящие работают нормально.
настроил группу в которую включил 2 телефона (102 и 103)
настроил входящие звонки на группу, а если в группе никто не поднял трубку звонок через 10 секунд переходит на номер 101, на котором стоит автоматическая переадресация на внешний сотовый номер (мтс)

при звонке с любого внутреннего телефона на 101 - все в порядке соединение идет на сотовый абоненты слышат друг друга.
при звонке например с номера 102 на 103 и в дальнейшем переадресации на любом из телефонов на 101 тоже все в порядке,другой телефон разговаривает с сотовым.
при звонке извне никто из группы не поднимает трубку, звонок автоматически уходит на номер 101, сотовый на который он приходит звонит но после поднятия трубки абоненты не слышат друг друга.

что уже сделано:
Проверил кодаки, стоят
CLI>core show translation показывает что нет только кодеков siren7, siren14, g719 остальные стоят
sip show settings
Codecs: 0x90f (g723|gsm|ulaw|alaw|g726|g729)
Codec Order: ulaw:20,alaw:20,gsm:20,g729:20,g723:30,g726:20

лог астериска только часть касаемо звонка
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Called SIP/Compnet_out/89175223460
-- SIP/Compnet_out-00000037 is ringing
-- Local/89175223460@from-internal-9704;1 is ringing
-- SIP/Compnet_out-00000037 is making progress passing it to Local/89175223460@from-internal-9704;2
-- Local/89175223460@from-internal-9704;1 is making progress passing it to SIP/Compnet_out-00000034
-- SIP/Compnet_out-00000037 is ringing
-- SIP/Compnet_out-00000037 answered Local/89175223460@from-internal-9704;2
-- Local/89175223460@from-internal-9704;1 answered SIP/Compnet_out-00000034
-- Executing [h@macro-dial-one:1] Macro("SIP/Compnet_out-00000034", "hangupcall,") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("SIP/Compnet_out-00000034", "0?endmixmoncheck") in new stack
-- Executing [s@macro-hangupcall:2] Set("SIP/Compnet_out-00000034", "MIXMON_CALLFILENAME=/var/spool/asterisk/monitor/20120721-162630-1342873582.76.wav") in new stack

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

прошу помощи подсказки что еще можно посмотреть, где покопать.
ded
Сообщения: 15622
Зарегистрирован: 26 авг 2010, 19:00

Re: Elastix 2.3.0 автоматический трансфер на внешний номер

Сообщение ded »

Слово кодек происходит от сокращения КОдер + ДЕКодер, поэтому кодак - неверно.
Это название фотоаппарата, которое придумал г-н Истмен, основатель компании Истмен-Кодак.

sip show settings - хорошо, но для данного случая актуально смотреть
sip show peer Compnet по части кодеков.

Когда сотовый звонит но после поднятия трубки абоненты не слышат друг друга - надо выполнить
sip show channels чтобы увидеть какими кодеками зацепились оба плеча.
Кроме того есть вероятность, что гдее-то canreinvite=yes, и поэтому оба плеча пытаются пересылать медиа напрямую, что кончно же не пойдёт. Визуально это можно понять выполнив команду
rtp set debug
чтобы видеть куда и откуда бегут пакеты медиа.
Ну и общщие алгоритмы распутывания проблем:
Изображение
Изображение
papandoz
Сообщения: 13
Зарегистрирован: 08 июл 2012, 22:55

Re: Elastix 2.3.0 автоматический трансфер на внешний номер

Сообщение papandoz »

ded, спасибо появилось понимание где копать ))

sip show peer Compnet - стоят ровно те же кодеки
Codecs: 0x90f (g723|gsm|ulaw|alaw|g726|g729)
Codec Order: ulaw:20,alaw:20,gsm:20,g729:20,g723:30,g726:20

canreinvite=no в настройках транка компнет, вот вообще все настройки на текущий момент
host=80.243.0.22
insecure=invite,port
canreinvite=no
username=4959871230
secret=xxxxxxxxxxxxxx
type=friend
fromuser=4959871230
qualify=yes
nat=yes
context=from-trunk
fromdomain=80.243.0.22

по алгоритму включил дебугер на компнет посмотрел логи, нашлась в одном месте ошибка 404 no found, добавил fromdomain=80.243.0.22, не помогло.

на счет каналов

Было при звонке с внутреннего телефона на 101

Sip show channels
Peer User/ANR Call ID Format Hold Last Message Expiry Peer
80.243.0.22 89175223460 0309033b244b87a 0x8 (alaw) No Tx: ACK Compnet_ou
192.168.1.53 102 0024c442-8e8800 0x8 (alaw) No Rx: ACK 102

rtp set debug показал
[Jul 22 11:20:30] VERBOSE[9099] res_rtp_asterisk.c: Got RTP packet from 192.168.1.53:16396 (type 08, seq 043115, ts 48800368, len 000160)
[Jul 22 11:20:30] VERBOSE[9101] res_rtp_asterisk.c: Sent RTP packet to 80.243.0.22:13084 (type 08, seq 063739, ts 48800368, len 000160)
[Jul 22 11:20:30] VERBOSE[9099] res_rtp_asterisk.c: Got RTP packet from 192.168.1.53:16396 (type 08, seq 043116, ts 48800528, len 000160)
[Jul 22 11:20:30] VERBOSE[9101] res_rtp_asterisk.c: Sent RTP packet to 80.243.0.22:13084 (type 08, seq 063740, ts 48800528, len 000160)

а вот при звонке извне и переадресации сразу на внешний следующее

elastix*CLI> sip show channels
Peer User/ANR Call ID Format Hold Last Message Expiry Peer
80.243.0.22 89168183534 684ad7426c84bc3 0x8 (alaw) No Tx: ACK Compnet_ou
80.243.0.22 4959871230 37be4a0124be71e 0x0 (nothing) No <guest>
80.243.0.22 4959871230 7a1519cc0fc6bbe 0x8 (alaw) No Rx: ACK Compnet_ou
3 active SIP dialogs

вот в выделенной строке нет кодека...
смущает что строка повторяется
пытаюсь понять каким образом исправить... случайно не нужно провайдера дергать или это правится на своем оборудовании?
ded
Сообщения: 15622
Зарегистрирован: 26 авг 2010, 19:00

Re: Elastix 2.3.0 автоматический трансфер на внешний номер

Сообщение ded »

Было при звонке с внутреннего телефона на 101
Это было при звонке с внутреннего телефона 102 на какой-то внешний. При чём тут 101?

Sip show channels - два плеча разговора, оба по alaw, всё нормально.
80.243.0.22 89175223460 0309033b244b87a 0x8 (alaw) No Tx: ACK Compnet_ou
192.168.1.53 102 0024c442-8e8800 0x8 (alaw) No Rx: ACK 102
rtp set debug показал
[Jul 22 11:20:30] VERBOSE[9099] res_rtp_asterisk.c: Got RTP packet from 192.168.1.53:16396 (type 08, seq 043115, ts 48800368, len 000160)
[Jul 22 11:20:30] VERBOSE[9101] res_rtp_asterisk.c: Sent RTP packet to 80.243.0.22:13084 (type 08, seq 063739, ts 48800368, len 000160)
[Jul 22 11:20:30] VERBOSE[9099] res_rtp_asterisk.c: Got RTP packet from 192.168.1.53:16396 (type 08, seq 043116, ts 48800528, len 000160)
[Jul 22 11:20:30] VERBOSE[9101] res_rtp_asterisk.c: Sent RTP packet to 80.243.0.22:13084 (type 08, seq 063740, ts 48800528, len 000160)
Строго говоря при таком звонке RTP должно бежать на обоих плечах:
От абонента 102 до Астериск в обе стороны, и от Астериска до Compnet, тоже в обе стороны.
а вот при звонке извне и переадресации сразу на внешний следующее

elastix*CLI> sip show channels
Тут у Вас тоже два плеча, с одинаковым кодеком alaw, и оба внешние: пришедший вызов из Compnet, и туда же отправленный. То есть явно проблема не в кодеках.
80.243.0.22 89168183534 684ad7426c84bc3 0x8 (alaw) No Tx: ACK Compnet_ou
80.243.0.22 4959871230 37be4a0124be71e 0x0 (nothing) No <guest> - это роли не играет.
80.243.0.22 4959871230 7a1519cc0fc6bbe 0x8 (alaw) No Rx: ACK Compnet_ou
Проблема в ИП адресации при замыкании медиа, вследствие НАТ.По обоим этим плечам должен бежать RTP, и это можно детектировать даже на уровне tcpdump host _IP_ADDR_Compnet_
Может также быть проблема подстановки исходящего номера при таком звонке.
Прямой звонок в мир выглядит как 4959871230 => 9012345678
А перенаправленный - пришёл с 987654321, Вы его перенаправили на => 9012345678, при этом надо делать подстановку Set(CALLERID(num)=4959871230) иначе звонок выглядит как 987654321 => 9012345678 и Compnet не пропустит такой вызов.

И ещё: покажите-ка свою строку конфигурации где звонок через 10 секунд переходит на номер 101, на котором стоит автоматическая переадресация на внешний сотовый номер (мтс)
Похоже что Вы вызов делаете по SIP URI типа Dial(SIP/9012345678@80.243.0.82)
Такой звонок идёт без аутентификации, это guest для Compnet, и это не пройдёт.
papandoz
Сообщения: 13
Зарегистрирован: 08 июл 2012, 22:55

Re: Elastix 2.3.0 автоматический трансфер на внешний номер

Сообщение papandoz »

на всякий случай приложу все касаемо группы 600

[ext-group]
include => ext-group-custom
exten => 600,1,Macro(user-callerid,)
exten => 600,n,GotoIf($["foo${BLKVM_OVERRIDE}" = "foo"]?skipdb)
exten => 600,n,GotoIf($["${DB(${BLKVM_OVERRIDE})}" = "TRUE"]?skipov)
exten => 600,n(skipdb),Set(__NODEST=)
exten => 600,n,Set(__BLKVM_OVERRIDE=BLKVM/${EXTEN}/${CHANNEL})
exten => 600,n,Set(__BLKVM_BASE=${EXTEN})
exten => 600,n,Set(DB(${BLKVM_OVERRIDE})=TRUE)
exten => 600,n(skipov),Set(RRNODEST=${NODEST})
exten => 600,n(skipvmblk),Set(__NODEST=${EXTEN})
exten => 600,n,GosubIf($[${DB_EXISTS(RINGGROUP/600/changecid)} = 1 & "${DB(RINGGROUP/600/changecid)}" != "default" & "${DB(RINGGROUP/600/changecid)}" != ""]?sub-rgsetcid,s,1)
exten => 600,n,Set(RecordMethod=Group)
exten => 600,n,Macro(record-enable,102-103,${RecordMethod})
exten => 600,n,Set(RingGroupMethod=ringall)
exten => 600,n(DIALGRP),Macro(dial,10,${DIAL_OPTIONS},102-103)
exten => 600,n,Set(RingGroupMethod=)
exten => 600,n,GotoIf($["foo${RRNODEST}" != "foo"]?nodest)
exten => 600,n,Set(__NODEST=)
exten => 600,n,Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => 600,n,Goto(from-did-direct,101,1)
exten => 600,n(nodest),Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST})
exten => h,1,Macro(hangupcall,)

; end of [ext-group]

ded, проблема подстановки номера или проблема аутентификации меня смущает что звонок до внешнего телефона проходит и телефон звонит и на том куда звонит телефоне номер определяется как номер АТС (вроде так и должно быть)
а еще при поднятии трубки в офисе человеком и руками набрав трансфер на номер 101 все прекрасно, оба внешних абонента общаются через атс.
походу что-то в автоматике копать надо если это не кодек...
на одном из форумов говорилось что примерно похожая проблема решилась добавлением в транке force trunk cid
я пробовал, не помогло

может это как то влияет, у меня на начальном этапе были проблемы с входящими, поборол тем, что пообщавшись с провайдером с той стороны отключили qualify=no, как обьяснил провайдер теперь атс провайдера меня не идентифицирует не ждет когда откликнусь соединяет по умолчанию не понимая моя атс на месте или нет.
ded
Сообщения: 15622
Зарегистрирован: 26 авг 2010, 19:00

Re: Elastix 2.3.0 автоматический трансфер на внешний номер

Сообщение ded »

А меня не смущает.
Если телефон звонит и на том куда звонит телефоне номер определяется как номер АТС, то это и есть force trunk cid.
Я просил: покажите-ка свою строку конфигурации где звонок через 10 секунд переходит на номер 101, на котором стоит автоматическая переадресация на внешний сотовый номер (мтс)
Это будет строка где есть что-то типа Dial(SIP/9012345678@80.243.0.82)

А выделенная строка
exten => 600,n,Goto(from-did-direct,101,1)
это перенаправление в контекст from-did-direct. где как раз искомое, что и просил. Что там?
[from-did-direct]
exten => 101,1,Dial(SIP/9012345678@80.243.0.82) ??
papandoz
Сообщения: 13
Зарегистрирован: 08 июл 2012, 22:55

Re: Elastix 2.3.0 автоматический трансфер на внешний номер

Сообщение papandoz »

ded, извини, я застопорился
эластикс со своим универсализмом и include убивает.

я понимаю что вместо фром-дид-директ автоматически подставляется "адрес"
но найти у себя как посмотреть этот адрес я пока не могу
перелопатил файлы .conf не нашел где описывается строчка

вот максимум что нашлось :(
[from-did-direct]
include => ext-findmefollow
include => ext-local

может из данного лога будет понятно что-то
[Jul 25 21:32:20] VERBOSE[3324] chan_sip.c: Scheduling destruction of SIP dialog '3c6eaed51be50b544e542f1d54ebcdf7@192.168.1.5:5060' in 6400 ms (Method: INVITE)
[Jul 25 21:32:20] VERBOSE[3324] chan_sip.c:
<--- SIP read from UDP:80.243.0.22:5060 --->
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.5:5060;branch=z9hG4bK3ade705d;received=80.243.9.206;rport=5060
From: "89175223460" <sip:4959871230@192.168.1.5>;tag=as238e72ed
To: <sip:89168183534@80.243.0.22>;tag=as72efc9e1
Call-ID: 3c6eaed51be50b544e542f1d54ebcdf7@192.168.1.5:5060
CSeq: 103 CANCEL
Server: Asterisk PBX 1.6.2.20
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO
Supported: replaces
Content-Length: 0
ded
Сообщения: 15622
Зарегистрирован: 26 авг 2010, 19:00

Re: Elastix 2.3.0 автоматический трансфер на внешний номер

Сообщение ded »

Нет, это не тоот лог.
Вам не справиться.
ded
Сообщения: 15622
Зарегистрирован: 26 авг 2010, 19:00

Re: Elastix 2.3.0 автоматический трансфер на внешний номер

Сообщение ded »

dailplan show from-did-direct ?

include => ext-findmefollow
include => ext-local

dailplan show ext-findmefollow ?

вот тут где-то ваш folllow me и сидит.

- Видишь там суслика?
- Нет!
- И я не вижу А он там есть!
papandoz
Сообщения: 13
Зарегистрирован: 08 июл 2012, 22:55

Re: Elastix 2.3.0 автоматический трансфер на внешний номер

Сообщение papandoz »

ded, :) да уж так все просто.
раскрыл всю ветку
ext-findmefollow вообще пусто...
смутно начинаю догадываться, вероятно придется в ручную прописывать ext-findmefollow для маршрута внешний-атс-внешний...

elastix*CLI> dialplan show from-did-direct
[ Context 'from-did-direct' created by 'pbx_config' ]
Include => 'ext-findmefollow' [pbx_config]
Include => 'ext-local' [pbx_config]

-= 0 extensions (0 priorities) in 1 context. =-
elastix*CLI> dialplan show ext-findmefollow
There is no existence of 'ext-findmefollow' context
Command 'dialplan show ext-findmefollow' failed.

elastix*CLI> dialplan show ext-local
[ Context 'ext-local' created by 'pbx_config' ]
'101' => hint: SIP/101 [pbx_config]
1. Macro(exten-vm,novm,101) [pbx_config]
2. Goto(${IVR_CONTEXT},return,1) [pbx_config]
'102' => hint: SIP/102 [pbx_config]
1. Macro(exten-vm,novm,102) [pbx_config]
2. Goto(${IVR_CONTEXT},return,1) [pbx_config]
'103' => hint: SIP/103 [pbx_config]
1. Macro(exten-vm,novm,103) [pbx_config]
2. Goto(${IVR_CONTEXT},return,1) [pbx_config]
'h' => 1. Macro(hangupcall,) [pbx_config]
'vmret' => 1. GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?playret) [pbx_config]
2. Hangup() [pbx_config]
[playret] 3. Playback(exited-vm-will-be-transfered&silence/1) [pbx_config]
4. Goto(${IVR_CONTEXT},return,1) [pbx_config]
Include => 'ext-local-custom' [pbx_config]

-= 5 extensions (14 priorities) in 1 context. =-
elastix*CLI> dialplan show ext-local-custom
There is no existence of 'ext-local-custom' context
Command 'dialplan show ext-local-custom' failed.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH