AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Asterisk FreePBX и аналоговая плата OpenVox A400E

Asterisk GUI 34 сообщений -
#1

Доброго времени суток!

Есть сервер с Asterisk v. 11.16.0 (точнее сервер установленный с Asterisknow.iso) В сервер установлена VoIP-плата OpenVox A400E с 3-мя модулями OpenVox FXO-
O) и 1-м модулем OpenVox FXS-100 (1xFXS)

Код:
service dahdi status
### Span 1: WCTDM/4 "Wildcard TDM400P REV E/F Board 5" (MASTER)
1 FXO FXSKS (In use) (EC: OSLEC - INACTIVE)
2 FXO FXSKS (EC: OSLEC - INACTIVE) RED
3 FXO FXSKS (EC: OSLEC - INACTIVE) RED
4 FXS FXOKS (In use) (EC: OSLEC - INACTIVE)


К 1-му порту подключена аналоговая городская линия МГТС, к 4-му порту подключен аналоговый телефон.
Цель: пробрасывать входящие вызовы на порт 4 (аналоговый телефон) Исходящие вызовы пробрасывать на городскую линию.

Настройки делал по ссылке:
http://www.ab-log.ru/page.php?cs=1&ID=118

Итог: звонки на телефон/с телефона не проходят. Куда копать?
#2

с такой постановкой вопроса надо либо логи прикладывать, либо в раздел бизнес вопросы задавать.
_________________
платный суппорт по мере возможностей
#3

Вопрос начинающего, поэтому мало конкретики. Smile Логов у Asterisk много, напишите какие нужно прислать.

Может попробовать включить режим отладки в консоли, но вот вопрос как мониторить аналоговую плату (вернее состояние ее портов когда на них приходит звонок с города)
Кстати статус линии на FXO порту изменился на In use с INACTIVE через пару часов, на скрине это видно, видимо китайская плата.
#4

вам на плате нечего мониторить не надо - у вас проблема скорей всего с диалпланом

Входящий звонок показывайте
core set verbose 3
core set debug 0

_________________
платный суппорт по мере возможностей
#5

Такие сообщения сваливаются в консоль при входящем звонке:

Код:
[2015-08-18 08:54:35] WARNING[2192]: res_odbc.c:1412 _ast_odbc_request_obj2: SetConnectAttr (Txn isolation) returned an error: HY000: [MySQL][ODBC 5.1 Driver]MySQL server has gone away
-- Starting simple switch on 'DAHDI/1-1'
[2015-08-18 08:54:35] WARNING[2192]: res_odbc.c:646 ast_odbc_prepare_and_execute: SQL Execute returned an error -1: 08S01: [MySQL][ODBC 5.1 Driver][mysqld-5.1.73]MySQL server has gone away (65)
[2015-08-18 08:54:35] WARNING[2192]: res_odbc.c:658 ast_odbc_prepare_and_execute: SQL Execute error -1! Verifying connection to asteriskcdrdb [MySQL-asteriskcdrdb]...
[2015-08-18 08:54:35] WARNING[2192]: res_odbc.c:762 ast_odbc_sanity_check: Connection is down attempting to reconnect...
[2015-08-18 08:54:35] NOTICE[2192]: res_odbc.c:1537 odbc_obj_connect: Connecting asteriskcdrdb
[2015-08-18 08:54:35] NOTICE[2192]: res_odbc.c:1569 odbc_obj_connect: res_odbc: Connected to asteriskcdrdb [MySQL-asteriskcdrdb]
[2015-08-18 08:54:39] WARNING[10699][C-0000000c]: pbx.c:6646 __ast_pbx_run: Channel 'DAHDI/1-1' sent to invalid extension but no invalid handler: context,exten,priority=DID_trunk_1,s,1
-- Hanging up on 'DAHDI/1-1'
-- Hungup 'DAHDI/1-1'
-- Starting simple switch on 'DAHDI/1-1'
[2015-08-18 08:54:49] WARNING[10706][C-0000000d]: pbx.c:6646 __ast_pbx_run: Channel 'DAHDI/1-1' sent to invalid extension but no invalid handler: context,exten,priority=DID_trunk_1,s,1
-- Hanging up on 'DAHDI/1-1'
-- Hungup 'DAHDI/1-1'
-- Starting simple switch on 'DAHDI/1-1'
[2015-08-18 08:54:59] WARNING[10711][C-0000000e]: pbx.c:6646 __ast_pbx_run: Channel 'DAHDI/1-1' sent to invalid extension but no invalid handler: context,exten,priority=DID_trunk_1,s,1
-- Hanging up on 'DAHDI/1-1'
-- Hungup 'DAHDI/1-1'
-- Starting simple switch on 'DAHDI/1-1'
[2015-08-18 08:55:09] WARNING[10726][C-0000000f]: pbx.c:6646 __ast_pbx_run: Channel 'DAHDI/1-1' sent to invalid extension but no invalid handler: context,exten,priority=DID_trunk_1,s,1
-- Hanging up on 'DAHDI/1-1'
-- Hungup 'DAHDI/1-1'
#6

Так. Первое - проверяйте коннект между астером и базой.

Ну и второе:
Код:
[2015-08-18 08:54:49] WARNING[10706][C-0000000d]: pbx.c:6646 __ast_pbx_run: Channel 'DAHDI/1-1' sent to invalid extension but no invalid handler: context,exten,priority=DID_trunk_1,s,1


Переводить или сами поняли что надо проверить наличие контекста DID_trunk_1 и в нем шаг s: dialplan show DID_trunk_1

_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#7

Снова повторюсь - я новичек в астере, поэтому выбрал Asterisknow. Как проверить соединение астера с базой?

Далее, я не обнулял стандартный диалплан, руководствуясь тем, что внутренние звонки проходят нормально, поэтому просто добавил все в users.conf, как рекомендовано на ресурсе ниже:
http://www.ab-log.ru/page.php?cs=1&ID=118

Как лучше поступить: обнулить полностью диалплан и все крутить заново?

Вот собственно сам файл users.conf

Код:
[trunk_1]
group = 1
context = DID_trunk_1
busydetect = yes
busycount = 3
busypattern = 500,500
ringtimeout = 8000
progzone = ru
usecallerid = yes
cidstart = ring
cidsignalling = bell
flash = 750
rxflash = 1250
callerid = asreceived
dahdichan = 1
trunkstyle = analog
allow = all
group = 1
signalling = fxs_ks
channel = 1

exten => _NXXXXX,1,Dial(DAHDI/1/${EXTEN:0})

[DID_trunk_1]
exten => s,1,DIAL(SIP/113,20)
exten => s,2,Hangup()



113 это ext реального телефона который подключен к 4 порту аналоговой платы.
В порт 1 аналоговой платы включена городская линия по меди.
#8

У меня с глазами что-то или вы серьезно влепили обработку вызова в файл регистрации-описания?
Уважаемый!!! Хоть немного почитать следует - обработка вызовов происходит в файлах диал-плана!!!!!

_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#9

context = from-trunk

после этого создаете стандартный входящий маршрут и отправляете куда надо

_________________
платный суппорт по мере возможностей
#10

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

Итак, давайте по-порядку:
1. Нужно обнулять стандартный диалплан сборки Asterisknow?
2. Как проверить коннект между астером и базой.

Дайте хоть ссылку на ресурс где про это можно почитать, что конкретно добавлять к extentions.conf, что конкретно в users.conf, что конкретно в sip.conf

Телефоны в sip.additional.conf я добавляю самостоятельно, тут понимание есть.
#11

вам надо прочитать про бедующее телефонии .
добавлять и что то менять в стандартных контекстах - не рекомендуется . пока не поймете что и куда можно и нужно добавлять .
а то вы сейчас нажмете в веб морде применить . и все ваши труды уйдут на смарку .
#12

Ну а ответы на 1 и 2 вопрос мне кто-нибудь подскажет?
#13

1.Нет
2.Логи

_________________
платный суппорт по мере возможностей
#14

Mike128 писал(а):
Дайте хоть ссылку на ресурс где про это можно почитать

Asterisk config extensions.conf
Asterisk config users.conf
Asterisk config sip.conf
Но для начала обязательно:
april22 писал(а):
вам надо прочитать про бедующее телефонии

google.ru -> книга астериск будущее телефонии

Mike128 писал(а):
Как проверить коннект между астером и базой.

Код:
CLI> odbc show all

_________________
mega-net.ru - IT аутсорсинг
#15

Спасибо за советы, вроде разобрался.. В настройках аналоговой платы прописал контекст который везде един. Создал входящее правило маршрутизации и привязал к внутреннему ext.
Теперь при входящем звонке из города в лог 1 раз падает вот что:

Код:
Connected to Asterisk 11.16.0 currently running on gw (pid = 2191)
[2015-08-19 08:57:03] WARNING[5610][C-00000066]: func_channel.c:538 func_channel_read: Unknown or unavailable item requested: 'reversecharge'
gw*CLI>


Остальные ошибки пропали.

Added after 6 minutes:

Mike128 @ Ср Авг 19, 2015 07:01 писал(а):
Спасибо за советы, вроде разобрался.. В настройках аналоговой платы прописал контекст который везде един. Создал входящее правило маршрутизации и привязал к внутреннему ext.
Забыл отладку включить, вот:

Код:
-- Starting simple switch on 'DAHDI/1-1'
-- Executing [s@from-trunk:1] ExecIf("DAHDI/1-1", "1?Set(__FROM_DID=s)") in new stack
-- Executing [s@from-trunk:2] Gosub("DAHDI/1-1", "sub-record-check,s,1(in,s,dontcare)") in new stack
-- Executing [s@sub-record-check:1] GotoIf("DAHDI/1-1", "0?initialized") in new stack
-- Executing [s@sub-record-check:2] Set("DAHDI/1-1", "__REC_STATUS=INITIALIZED") in new stack
-- Executing [s@sub-record-check:3] Set("DAHDI/1-1", "NOW=1439964235") in new stack
-- Executing [s@sub-record-check:4] Set("DAHDI/1-1", "__DAY=19") in new stack
-- Executing [s@sub-record-check:5] Set("DAHDI/1-1", "__MONTH=08") in new stack
-- Executing [s@sub-record-check:6] Set("DAHDI/1-1", "__YEAR=2015") in new stack
-- Executing [s@sub-record-check:7] Set("DAHDI/1-1", "__TIMESTR=20150819-090355") in new stack
-- Executing [s@sub-record-check:8] Set("DAHDI/1-1", "__FROMEXTEN=unknown") in new stack
-- Executing [s@sub-record-check:9] Set("DAHDI/1-1", "__MON_FMT=wav") in new stack
-- Executing [s@sub-record-check:10] NoOp("DAHDI/1-1", "Recordings initialized") in new stack
-- Executing [s@sub-record-check:11] ExecIf("DAHDI/1-1", "0?Set(ARG3=dontcare)") in new stack
-- Executing [s@sub-record-check:12] Set("DAHDI/1-1", "REC_POLICY_MODE_SAVE=") in new stack
-- Executing [s@sub-record-check:13] ExecIf("DAHDI/1-1", "0?Set(REC_STATUS=NO)") in new stack
-- Executing [s@sub-record-check:14] GotoIf("DAHDI/1-1", "2?checkaction") in new stack
-- Goto (sub-record-check,s,17)
-- Executing [s@sub-record-check:17] GotoIf("DAHDI/1-1", "1?sub-record-check,in,1") in new stack
-- Goto (sub-record-check,in,1)
-- Executing [in@sub-record-check:1] NoOp("DAHDI/1-1", "Inbound Recording Check to s") in new stack
-- Executing [in@sub-record-check:2] Set("DAHDI/1-1", "FROMEXTEN=unknown") in new stack
-- Executing [in@sub-record-check:3] ExecIf("DAHDI/1-1", "0?Set(FROMEXTEN=)") in new stack
-- Executing [in@sub-record-check:4] Gosub("DAHDI/1-1", "recordcheck,1(dontcare,in,s)") in new stack
-- Executing [recordcheck@sub-record-check:1] NoOp("DAHDI/1-1", "Starting recording check against dontcare") in new stack
-- Executing [recordcheck@sub-record-check:2] Goto("DAHDI/1-1", "dontcare") in new stack
-- Goto (sub-record-check,recordcheck,3)
-- Executing [recordcheck@sub-record-check:3] Return("DAHDI/1-1", "") in new stack
-- Executing [in@sub-record-check:5] Return("DAHDI/1-1", "") in new stack
-- Executing [s@from-trunk:3] Gosub("DAHDI/1-1", "app-blacklist-check,s,1()") in new stack
-- Executing [s@app-blacklist-check:1] GotoIf("DAHDI/1-1", "0?blacklisted") in new stack
-- Executing [s@app-blacklist-check:2] Set("DAHDI/1-1", "CALLED_BLACKLIST=1") in new stack
-- Executing [s@app-blacklist-check:3] Return("DAHDI/1-1", "") in new stack
-- Executing [s@from-trunk:4] Set("DAHDI/1-1", "CDR(did)=s") in new stack
-- Executing [s@from-trunk:5] ExecIf("DAHDI/1-1", "1 ?Set(CALLERID(name)=)") in new stack
-- Executing [s@from-trunk:6] Set("DAHDI/1-1", "CHANNEL(musicclass)=default") in new stack
-- Executing [s@from-trunk:7] Set("DAHDI/1-1", "__MOHCLASS=default") in new stack
-- Executing [s@from-trunk:8] Ringing("DAHDI/1-1", "") in new stack
[2015-08-19 09:03:55] WARNING[5854][C-00000068]: func_channel.c:538 func_channel_read: Unknown or unavailable item requested: 'reversecharge'
-- Executing [s@from-trunk:9] GotoIf("DAHDI/1-1", "0?macro-hangupcall") in new stack
-- Executing [s@from-trunk:10] Set("DAHDI/1-1", "__CALLINGNAMEPRES_SV=allowed_not_screened") in new stack
-- Executing [s@from-trunk:11] Set("DAHDI/1-1", "__CALLINGNUMPRES_SV=allowed_not_screened") in new stack
-- Executing [s@from-trunk:12] Set("DAHDI/1-1", "CALLERID(name-pres)=allowed_not_screened") in new stack
-- Executing [s@from-trunk:13] Set("DAHDI/1-1", "CALLERID(num-pres)=allowed_not_screened") in new stack
-- Executing [s@from-trunk:14] Goto("DAHDI/1-1", "from-did-direct,113,1") in new stack
-- Goto (from-did-direct,113,1)
-- Executing [113@from-did-direct:1] GotoIf("DAHDI/1-1", "1?ext-local,113,1") in new stack
-- Goto (ext-local,113,1)
-- Executing [113@ext-local:1] Set("DAHDI/1-1", "__RINGTIMER=15") in new stack
-- Executing [113@ext-local:2] Macro("DAHDI/1-1", "exten-vm,novm,113,0,0,0") in new stack
-- Executing [s@macro-exten-vm:1] Macro("DAHDI/1-1", "user-callerid,") in new stack
-- Executing [s@macro-user-callerid:1] Set("DAHDI/1-1", "TOUCH_MONITOR=1439964230.111") in new stack
-- Executing [s@macro-user-callerid:2] Set("DAHDI/1-1", "AMPUSER=") in new stack
-- Executing [s@macro-user-callerid:3] GotoIf("DAHDI/1-1", "0?report") in new stack
-- Executing [s@macro-user-callerid:4] ExecIf("DAHDI/1-1", "1?Set(REALCALLERIDNUM=)") in new stack
-- Executing [s@macro-user-callerid:5] Set("DAHDI/1-1", "AMPUSER=") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("DAHDI/1-1", "0?limit") in new stack
-- Executing [s@macro-user-callerid:7] Set("DAHDI/1-1", "AMPUSERCIDNAME=") in new stack
-- Executing [s@macro-user-callerid:8] GotoIf("DAHDI/1-1", "1?report") in new stack
-- Goto (macro-user-callerid,s,16)
-- Executing [s@macro-user-callerid:16] GotoIf("DAHDI/1-1", "0?continue") in new stack
-- Executing [s@macro-user-callerid:17] ExecIf("DAHDI/1-1", "1?Set(__CALLEE_ACCOUNCODE=)") in new stack
-- Executing [s@macro-user-callerid:18] Set("DAHDI/1-1", "__TTL=64") in new stack
-- Executing [s@macro-user-callerid:19] GotoIf("DAHDI/1-1", "1?continue") in new stack
-- Goto (macro-user-callerid,s,30)
-- Executing [s@macro-user-callerid:30] Set("DAHDI/1-1", "CALLERID(number)=") in new stack
-- Executing [s@macro-user-callerid:31] Set("DAHDI/1-1", "CALLERID(name)=") in new stack
-- Executing [s@macro-user-callerid:32] Set("DAHDI/1-1", "CDR(cnum)=") in new stack
-- Executing [s@macro-user-callerid:33] Set("DAHDI/1-1", "CDR(cnam)=") in new stack
-- Executing [s@macro-user-callerid:34] Set("DAHDI/1-1", "CHANNEL(language)=en") in new stack
-- Executing [s@macro-exten-vm:2] Set("DAHDI/1-1", "RingGroupMethod=none") in new stack
-- Executing [s@macro-exten-vm:3] Set("DAHDI/1-1", "__EXTTOCALL=113") in new stack
-- Executing [s@macro-exten-vm:4] Set("DAHDI/1-1", "__PICKUPMARK=113") in new stack
-- Executing [s@macro-exten-vm:5] Set("DAHDI/1-1", "RT=") in new stack
-- Executing [s@macro-exten-vm:6] Gosub("DAHDI/1-1", "sub-record-check,s,1(exten,113,dontcare)") in new stack
-- Executing [s@sub-record-check:1] GotoIf("DAHDI/1-1", "7?initialized") in new stack
-- Goto (sub-record-check,s,10)
-- Executing [s@sub-record-check:10] NoOp("DAHDI/1-1", "Recordings initialized") in new stack
-- Executing [s@sub-record-check:11] ExecIf("DAHDI/1-1", "0?Set(ARG3=dontcare)") in new stack
-- Executing [s@sub-record-check:12] Set("DAHDI/1-1", "REC_POLICY_MODE_SAVE=") in new stack
-- Executing [s@sub-record-check:13] ExecIf("DAHDI/1-1", "0?Set(REC_STATUS=NO)") in new stack
-- Executing [s@sub-record-check:14] GotoIf("DAHDI/1-1", "5?checkaction") in new stack
-- Goto (sub-record-check,s,17)
-- Executing [s@sub-record-check:17] GotoIf("DAHDI/1-1", "1?sub-record-check,exten,1") in new stack
-- Goto (sub-record-check,exten,1)
-- Executing [exten@sub-record-check:1] NoOp("DAHDI/1-1", "Exten Recording Check between unknown and 113") in new stack
-- Executing [exten@sub-record-check:2] Set("DAHDI/1-1", "CALLTYPE=external") in new stack
-- Executing [exten@sub-record-check:3] ExecIf("DAHDI/1-1", "0?Set(CALLTYPE=)") in new stack
-- Executing [exten@sub-record-check:4] Set("DAHDI/1-1", "CALLEE=dontcare") in new stack
-- Executing [exten@sub-record-check:5] ExecIf("DAHDI/1-1", "0?Set(CALLEE=dontcare)") in new stack
-- Executing [exten@sub-record-check:6] GotoIf("DAHDI/1-1", "1?callee") in new stack
-- Goto (sub-record-check,exten,11)
-- Executing [exten@sub-record-check:11] Gosub("DAHDI/1-1", "recordcheck,1(dontcare,external,113)") in new stack
-- Executing [recordcheck@sub-record-check:1] NoOp("DAHDI/1-1", "Starting recording check against dontcare") in new stack
-- Executing [recordcheck@sub-record-check:2] Goto("DAHDI/1-1", "dontcare") in new stack
-- Goto (sub-record-check,recordcheck,3)
-- Executing [recordcheck@sub-record-check:3] Return("DAHDI/1-1", "") in new stack
-- Executing [exten@sub-record-check:12] Return("DAHDI/1-1", "") in new stack
-- Executing [s@macro-exten-vm:7] GotoIf("DAHDI/1-1", "1?macrodial") in new stack
-- Goto (macro-exten-vm,s,13)
-- Executing [s@macro-exten-vm:13] GosubIf("DAHDI/1-1", "0?clrheader,1()") in new stack
-- Executing [s@macro-exten-vm:14] Macro("DAHDI/1-1", "dial-one,,Ttr,113") in new stack
-- Executing [s@macro-dial-one:1] Set("DAHDI/1-1", "DEXTEN=113") in new stack
-- Executing [s@macro-dial-one:2] Set("DAHDI/1-1", "DIALSTATUS_CW=") in new stack
-- Executing [s@macro-dial-one:3] GosubIf("DAHDI/1-1", "0?screen,1()") in new stack
-- Executing [s@macro-dial-one:4] GosubIf("DAHDI/1-1", "0?cf,1()") in new stack
-- Executing [s@macro-dial-one:5] GotoIf("DAHDI/1-1", "1?skip1") in new stack
-- Goto (macro-dial-one,s,8)
-- Executing [s@macro-dial-one:8] GotoIf("DAHDI/1-1", "0?nodial") in new stack
-- Executing [s@macro-dial-one:9] GotoIf("DAHDI/1-1", "0?continue") in new stack
-- Executing [s@macro-dial-one:10] Set("DAHDI/1-1", "EXTHASCW=ENABLED") in new stack
-- Executing [s@macro-dial-one:11] GotoIf("DAHDI/1-1", "0?next1:cwinusebusy") in new stack
-- Goto (macro-dial-one,s,23)
-- Executing [s@macro-dial-one:23] GotoIf("DAHDI/1-1", "0?next3:continue") in new stack
-- Goto (macro-dial-one,s,25)
-- Executing [s@macro-dial-one:25] GotoIf("DAHDI/1-1", "0?nodial") in new stack
-- Executing [s@macro-dial-one:26] GosubIf("DAHDI/1-1", "1?dstring,1():dlocal,1()") in new stack
-- Executing [dstring@macro-dial-one:1] Set("DAHDI/1-1", "DSTRING=") in new stack
-- Executing [dstring@macro-dial-one:2] Set("DAHDI/1-1", "DEVICES=113") in new stack
-- Executing [dstring@macro-dial-one:3] ExecIf("DAHDI/1-1", "0?Return()") in new stack
-- Executing [dstring@macro-dial-one:4] ExecIf("DAHDI/1-1", "0?Set(DEVICES=13)") in new stack
-- Executing [dstring@macro-dial-one:5] Set("DAHDI/1-1", "LOOPCNT=1") in new stack
-- Executing [dstring@macro-dial-one:6] Set("DAHDI/1-1", "ITER=1") in new stack
-- Executing [dstring@macro-dial-one:7] Set("DAHDI/1-1", "THISDIAL=DAHDI/4") in new stack
-- Executing [dstring@macro-dial-one:8] GosubIf("DAHDI/1-1", "1?zap2dahdi,1()") in new stack
-- Executing [zap2dahdi@macro-dial-one:1] ExecIf("DAHDI/1-1", "0?Return()") in new stack
-- Executing [zap2dahdi@macro-dial-one:2] Set("DAHDI/1-1", "NEWDIAL=") in new stack
-- Executing [zap2dahdi@macro-dial-one:3] Set("DAHDI/1-1", "LOOPCNT2=1") in new stack
-- Executing [zap2dahdi@macro-dial-one:4] Set("DAHDI/1-1", "ITER2=1") in new stack
-- Executing [zap2dahdi@macro-dial-one:5] Set("DAHDI/1-1", "THISPART2=DAHDI/4") in new stack
-- Executing [zap2dahdi@macro-dial-one:6] ExecIf("DAHDI/1-1", "0?Set(THISPART2=DAHDIDI/4)") in new stack
-- Executing [zap2dahdi@macro-dial-one:7] Set("DAHDI/1-1", "NEWDIAL=DAHDI/4&") in new stack
-- Executing [zap2dahdi@macro-dial-one:8] Set("DAHDI/1-1", "ITER2=2") in new stack
-- Executing [zap2dahdi@macro-dial-one:9] GotoIf("DAHDI/1-1", "0?begin2") in new stack
-- Executing [zap2dahdi@macro-dial-one:10] Set("DAHDI/1-1", "THISDIAL=DAHDI/4") in new stack
-- Executing [zap2dahdi@macro-dial-one:11] Return("DAHDI/1-1", "") in new stack
-- Executing [dstring@macro-dial-one:9] GotoIf("DAHDI/1-1", "1?doset") in new stack
-- Goto (macro-dial-one,dstring,13)
-- Executing [dstring@macro-dial-one:13] Set("DAHDI/1-1", "DSTRING=DAHDI/4&") in new stack
-- Executing [dstring@macro-dial-one:14] Set("DAHDI/1-1", "ITER=2") in new stack
-- Executing [dstring@macro-dial-one:15] GotoIf("DAHDI/1-1", "0?begin") in new stack
-- Executing [dstring@macro-dial-one:16] ExecIf("DAHDI/1-1", "0?Return()") in new stack
-- Executing [dstring@macro-dial-one:17] Set("DAHDI/1-1", "DSTRING=DAHDI/4") in new stack
-- Executing [dstring@macro-dial-one:18] Return("DAHDI/1-1", "") in new stack
-- Executing [s@macro-dial-one:27] GotoIf("DAHDI/1-1", "0?nodial") in new stack
-- Executing [s@macro-dial-one:28] GotoIf("DAHDI/1-1", "0?skiptrace") in new stack
-- Executing [s@macro-dial-one:29] GosubIf("DAHDI/1-1", "0?ctset,1():ctclear,1()") in new stack
-- Executing [ctclear@macro-dial-one:1] NoOp("DAHDI/1-1", "Deleting: CALLTRACE/113 ") in new stack
-- Executing [ctclear@macro-dial-one:2] Return("DAHDI/1-1", "") in new stack
-- Executing [s@macro-dial-one:30] Set("DAHDI/1-1", "D_OPTIONS=Ttr") in new stack
-- Executing [s@macro-dial-one:31] GosubIf("DAHDI/1-1", "0?func-set-sipheader,s,1(Alert-Info,)()") in new stack
-- Executing [s@macro-dial-one:32] ExecIf("DAHDI/1-1", "1?Set(CHANNEL(musicclass)=default)") in new stack
-- Executing [s@macro-dial-one:33] GosubIf("DAHDI/1-1", "0?qwait,1()") in new stack
-- Executing [s@macro-dial-one:34] Set("DAHDI/1-1", "__CWIGNORE=") in new stack
-- Executing [s@macro-dial-one:35] Set("DAHDI/1-1", "__KEEPCID=TRUE") in new stack
-- Executing [s@macro-dial-one:36] GotoIf("DAHDI/1-1", "0?usegoto,1") in new stack
-- Executing [s@macro-dial-one:37] GotoIf("DAHDI/1-1", "1?godial") in new stack
-- Goto (macro-dial-one,s,42)
-- Executing [s@macro-dial-one:42] Macro("DAHDI/1-1", "dialout-one-predial-hook,") in new stack
-- Executing [s@macro-dialout-one-predial-hook:1] MacroExit("DAHDI/1-1", "") in new stack
-- Executing [s@macro-dial-one:43] Dial("DAHDI/1-1", "DAHDI/4,,Ttrb(func-apply-sipheaders^s^1)") in new stack
-- DAHDI/4-1 Internal Gosub(func-apply-sipheaders,s,1) start
-- Executing [s@func-apply-sipheaders:1] NoOp("DAHDI/4-1", "Applying SIP Headers to channel") in new stack
-- Executing [s@func-apply-sipheaders:2] Set("DAHDI/4-1", "SIPHEADERKEYS=") in new stack
-- Executing [s@func-apply-sipheaders:3] While("DAHDI/4-1", "0") in new stack
-- Jumping to priority 7
-- Executing [s@func-apply-sipheaders:8] Return("DAHDI/4-1", "") in new stack
== Spawn extension (from-internal, 113, 1) exited non-zero on 'DAHDI/4-1'
-- DAHDI/4-1 Internal Gosub(func-apply-sipheaders,s,1) complete GOSUB_RETVAL=
-- Called DAHDI/4
-- DAHDI/4-1 is ringing
-- DAHDI/4-1 is ringing
-- DAHDI/4-1 is ringing
-- DAHDI/4-1 is ringing
-- DAHDI/4-1 is ringing
-- DAHDI/4-1 is ringing
-- DAHDI/4-1 is ringing
-- Hanging up on 'DAHDI/4-1'
-- Hungup 'DAHDI/4-1'
== Spawn extension (macro-dial-one, s, 43) exited non-zero on 'DAHDI/1-1' in macro 'dial-one'
== Spawn extension (macro-exten-vm, s, 14) exited non-zero on 'DAHDI/1-1' in macro 'exten-vm'
== Spawn extension (ext-local, 113, 2) exited non-zero on 'DAHDI/1-1'
-- Executing [h@ext-local:1] Macro("DAHDI/1-1", "hangupcall,") in new stack
-- Executing [s@macro-hangupcall:1] ExecIf("DAHDI/1-1", "0?Set(CDR(recordingfile)=.wav)") in new stack
-- Executing [s@macro-hangupcall:2] GotoIf("DAHDI/1-1", "1?theend") in new stack
-- Goto (macro-hangupcall,s,4)
-- Executing [s@macro-hangupcall:4] ExecIf("DAHDI/1-1", "0?Set(CDR(recordingfile)=)") in new stack
-- Executing [s@macro-hangupcall:5] Hangup("DAHDI/1-1", "") in new stack
== Spawn extension (macro-hangupcall, s, 5) exited non-zero on 'DAHDI/1-1' in macro 'hangupcall'
== Spawn extension (ext-local, h, 1) exited non-zero on 'DAHDI/1-1'
-- Hanging up on 'DAHDI/1-1'
-- Hungup 'DAHDI/1-1'


Остальные ошибки пропали.

Судя по логам входящий звонок из города переадресуется на ext113
#16

Действительно заработало. Дополнительно на вход прикрутил IVR с голосовым приветствием. Спасибо всем отвечающим.
Еще вопрос: на карте свободных FXO ещё свободных 2 порта. Как их завернуть на вход, чтобы неважно на какую городскую линию пришел звонок, важно чтобы эти звонки независимо друг от друга одновременно направлялись на входящую маршрутизацию. Как астер делит на аналоговой карте номер порта. В настройках DAHDI каждому порту присвоен from-trunk группа 0.

Ещё хотелось бы прикрутить ext исходящую маршрутизацию. Пробовал создавать исходящее правило, но с префиксами так пока ещё не разобрался.
#17

Вопросы сняты, разобрался.

Появились новые:

1. Начал настраивать ip телефоны по протоколу IAX2, никак не могу понять - между IAX2 нет слышимости. С FXO на IAX2 звонки и слышимость нормально, при попытке позвонить с IAX2 на FXO после соединения с абонентом продолжают идти длинные гудки.
Если заводить телефоны по SIP, то проблем никаких.

2. Как настроить группы доступа с ext на FXO, кому можно звонить в город, кому нет. Сейчас все абоненты ext могут звонить в город.
#18

Не страдать .... настраивать по SIP
Надо прописывать разрешение кому звонить в исходящем маршруте - вот для 105

_________________
платный суппорт по мере возможностей
#19

Спасибо, доходчиво и понятно.

Ещё вопросик: как отключить попытки определения номера астером? Опция определитель номера не оплачивается оператору связи, не хотелось бы "гонять" аппаратуру АОН оператора связи.
#20

Снова с вопросом:

Решил объеденить Asterisk с платой OpenVox (3 - FXO и 1 - FXS) c Panasonic KX-TA616 (4CO, 16SLT).
Отсоединил городскую линию от TA616, подключил к 1port-FXO Openvox, настроил маршрутизацию входящую, исходящую, ivr для соединения с внутренними sip ext - все работает.
Теперь пытаюсь объеденить Астер с Панасоником. Вообщем подключил я 4port FXS Openvox к CO линии TA616.
Теперь если с телефонов миниАТС 616 попытаться выйти в город, слышно приветствие IVR Астера.
Как сделать отдельно выход c TA616 отдельно на абонентов sip Астера и в город через тот-же Астер.
Что-то мне подсказывает что нужно отдельный входящий маршрут для TA616 и еще один исходящий для города.
Сейчас sip телефоны выходят в город через 8.
#21

Тишина. Никто разве не сталкивался?

Я этот вопрос задал ещё в связи с тем что после перехода на актуальную версию Asterisknow исчезли некоторые настройки в gui во входящей маршрутизации. Обновление решило проблему с ошибками подключения астера к бд.
Раньше во входящих можно было выбрать номер канала устройства (у меня было доступно каналов FXO=3, т.к. один разъем занят модулем FXS) Сейчас выбор порта во входящей отсутствует, что немного сбивает с толку.

Нужно чтобы при входящем наборе с Панасоника на порт №4 Openvox Астера маршрутизация шла не на IVR, а хотя-бы на ожидание донабора (8495) чтобы набор номера уходил на порты 1-3FXO того-же OpenVox в итоге на медь МГТС.
#22

см. CLI и включайте голову-ручки - вам в custom-файлы, а не терроризм вопросами тут в форуме Smile
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#23

Спасибо за ответ.
Но похоже ответ из оперы: Вам ipfw настроить? Тогда Вам в консоль!
Всегда считал что форум нужен реально для помощи в настройке, ну как минимум отправить к названию команды, а не из разряда: Вам в платный саппорт, или учите матчасть, или Вам в консоль!
Поверьте, я не боюсь консоли, но если вопрос уже содержит в себе часть ответа, то и ответ видимо должен нести в себе какую-то смысловую часть. Соответственно если ко мне обращаются за помощью, я не скуплюсь на советы (направить почитать, проанализировать проблему), а если есть время то помогаю и делом, потому-как знаю: сегодня ты помог, завтра тебе.
#24

Цитата:
Решил объеденить Asterisk с платой OpenVox (3 - FXO и 1 - FXS) c Panasonic KX-TA616 (4CO, 16SLT).

И зачем этот винегрет? Выкидывайте японца, ставьте сотрудникам IP-телефоны и звоните напрямую..

_________________
http://mh.otx.ru SIP/E1 шлюзы Alvis, Добавь E1 к Asterisk, Проапгрейди Заказчику TDA/LDK!
NEW! Alvis-GW-2E1-L по 29500р, спеши! цены
#25

Согласен. Такие гибриды дороже нормальных телефонов.
#26

Неужели прописать несколько правил в Астере дороже чем купить ip-телефоны? Сейчас уже обсуждаем то что имеем. Хочется не ломать действующую систему а интегрировать.
1порт в OpenVox FXS дороже ip-телефона?
Кстати, таких станций 2 в 2х разных зданиях. В идеале разве реализация 2 железок типа Linksys на 4 FXS 1 RJ45 (voip gateway) на каждые 4 CO порта Panasonic в связке с астером не будет выгоднее, чем 24+16=40ip телефонов?
#27

Цитата:
Сейчас уже обсуждаем то что имеем. Хочется не ломать действующую систему а интегрировать.


Это основная ошибка начинающих. Я понимаю, когда среднего размера гибриды - там есть реальная экономия и необходимость плавного перехода, а в небольших аналоговых - именно ВЫБРАСЫВАТЬ АНАЛОГ.
Привязывание Астера сбоку - никогда до добра не доводило.
В реальности в SOHO/Small business панас войну проиграл и ушел.

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

Цитата:
1порт в OpenVox FXS дороже ip-телефона?


Даже дешевенький ip-телефон уделывает FXS - там нет АНАЛога!!


Кстати Ваш покорный слуга в 2008 году стал поклонником Астериск именно по той же самой причине: мы занимались чисто разработкой ПО для E1 сетей, у нас стоял TEM824, в офисе все телефоны гурьбой звонили - это всем мешало.
Решить более продвинуто этот вопрос на той УПАТС возможности не было..
Астер сначала поставили "сбоку" через FXO - но быстро поняли что эта полумера только всё усложняет, выкинули старую АТС: в офисе стала ТИШИНА, но все по-прежнему могли до нас дозвониться, более того - дальше открыли второй офис и не ломали голову как и чего мудрить..
После этого мы уже придумали и свой Asterisk-based продукт, показывали на Astricon-2010 наш Alvis, тогда еще Alvis-PBX Smile
На фотке - наш стенд Astericon-2010, еще под флагом OdinTS. На столе кстати - никому тогда не известные тогда телефоны Yealink (одна из первых моделей).
Еще тогда у нас был FreePBX на борту, сейчас уже history)
Вот и думаешь теперь - а что бы было, если бы тогда в 2008м удалось так донастроить тот аналог))))))

Мой Вам совет - начните изучать Будущее Телефонии, выкидывайте нахрен это старье - и потом не будете жалеть!!!

_________________
http://mh.otx.ru SIP/E1 шлюзы Alvis, Добавь E1 к Asterisk, Проапгрейди Заказчику TDA/LDK!
NEW! Alvis-GW-2E1-L по 29500р, спеши! цены
#28

С большим интересом прочитал, знаю про неудобства. Но есть несколько но:

1. Бюджет на телефонизацию крохотный. Тем сотрудникам у кого сейчас есть "средство связи" upgrade делаться пока что не будет. Так что быстро и красиво точно не будет.
2. По мере роста ip-телефонов приходится отрывать городские линии от миниАТС Panasonic. (как его перепрограммировать я разобрался, отключаю от 9 освободившиеся CO) т.к. опять же см. п.1
Учитывая изложенное так или иначе придется временно делать "привязку сбоку", чтобы все телефоны как минимум выходили в город через Астер.

Как-то так..
#29

Mike128, про бюджет - это очень условно. Обычно просто IT-служба не может внятно объяснить владельцам бизнеса преимущества новой телефонии - это отдельная тема)
Просто возьмите в бухгалтерии распечатку расходов на телефонную связь по месяцам - межгород, звонки на сотовые, в филиалы (если есть) и всё встанет на свои места.

Лучше опишите внятно сам бизнес, кол-во сотрудников и нагрузку по телефонии.. Если информации мало - понаблюдайте и сделайте выводы.
Ну а здесь ребята помогут с советом как оптимальнее!!

Прилагаю еще одну историческую фотку, на сей раз с Contech-2009 в Израиле, уже у нас линксисы)

_________________
http://mh.otx.ru SIP/E1 шлюзы Alvis, Добавь E1 к Asterisk, Проапгрейди Заказчику TDA/LDK!
NEW! Alvis-GW-2E1-L по 29500р, спеши! цены
#30

Понятно.

Еще подскажите такой момент:

Если из городской линии приходит входящий звонок, то Астер индицирует его в логах как Unknown. Спору нет, но как его подменить на номер городской линии с которой пришел звонок?

И как сделать ограничение продолжительности звонка в и из городской линии? Нагуглил что в Asterisknow это делается через Подключения => Транки, но как конкретнее?
#31

В плане набора пропишите CALLERID(name)=№ городской. А городская АТС не предоставляет информацию CID?
#32

В плане набора где конкретно? Звонок с номером UNKNOWN приходит с fxo. Если прописать то что Вы рекомендуете в dahdi, то при звонке на этот городской номер Астер будет проговаривать голосовое сообщение что номер отключен.
Да, МГТС предоставляет услугу АОН за отдельную плату. Для некоторых организаций оплачивать эту услугу не разрешается.
#33

Set(CALLERID(NAME)=7XXXXXXXXX)
Set(CALLERID(NUM)=7XXXXXXXXXX) - например, так.
#34

Это в gui ? Или все-таки в custom-конфигах?