features.conf в asterisk 1.8.4.1

Для начинающих.
Всем начинающим - сюда.

Модераторы: Admins, Модераторы

SSL
Сообщения: 34
Зарегистрирован: 06 июл 2011, 13:33

features.conf в asterisk 1.8.4.1

Сообщение SSL » 19 авг 2011, 12:02

Доброго времени суток.
Не получается настроить в features.conf что бы по определн\енному нажатию клавиш (допустим **) запускался макрос прописанный в плане набора.
[applicationmap]
nway-start => **,caller,Macro,nway-start
nway-inv => *5,caller,Macro,nway-ok
nway-noinv => *#,caller,Macro,nway-notok

все это делалось, что бы организовать человеческую конференцию - что бы во время разговора нажать пару кнопок и оказаться в конференции, + еще несколько кнопок и еще один нужный чел там же.
идею брал отсюда http://www.voip-info.org/wiki/view/Aste ... call+HOWTO (ссылка что то глючит, ниже оригинальный текст)
How this works
While you speak with another party you can press *0, and the macro nway-start is executed.
The current party is immediately transferred to a free conference, whereas you get a dialtone
to enter the number of the other party you also would like to invite. After the call has been
established and you talk to third user, you can press ** to direct him to the conference, or *# to hangup
the current call and return to the conference yourself. From within the conference any user can invite another person by pressing 0 (all other steps are same as for *0).

Dialplan
Here is dialplan example:

[default]
exten => _XXX,1,Set(DYNAMIC_FEATURES=nway-start)
exten => _XXX,n,Dial(SIP/${EXTEN})

[dynamic-nway]
exten => _XXX,1,Answer
exten => _XXX,n,Set(CONFNO=${EXTEN})
exten => _XXX,n,Set(MEETME_EXIT_CONTEXT=dynamic-nway-invite)
exten => _XXX,n,Set(DYNAMIC_FEATURES=)
exten => _XXX,n,MeetMe(${CONFNO},pdMX)
exten => _XXX,n,Hangup

[dynamic-nway-invite]
exten => 0,1,Read(DEST,dial,,i)
exten => 0,n,Set(DYNAMIC_FEATURES=nway-inv#nway-noinv)
exten => 0,n,Dial(Local/${DEST}@dynamic-nway-dest,,g)
exten => 0,n,Set(DYNAMIC_FEATURES=)
exten => 0,n,Goto(dynamic-nway,${CONFNO},1)
exten => i,1,Goto(dynamic-nway,${CONFNO},1)

[dynamic-nway-dest]
exten => _XXX,1,Dial(SIP/${EXTEN})

[macro-nway-start]
exten => s,1,Set(CONFNO=${FindFreeConf()})
exten => s,n,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1)
exten => s,n,Read(DEST,dial,,i)
exten => s,n,Set(DYNAMIC_FEATURES=nway-inv#nway-noinv)
exten => s,n,Dial(Local/${DEST}@dynamic-nway-dest,,g)
exten => s,n,Set(DYNAMIC_FEATURES=)
exten => s,n,Goto(dynamic-nway,${CONFNO},1)

[macro-nway-ok]
exten => s,1,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1)

[macro-nway-notok]
exten => s,1,SoftHangup(${BRIDGEPEER})

Note, You need to provide FindFreeConf() function (or any other way) to get free Conference number.

And, to make all this work, here is features.conf:

[applicationmap]
nway-start => *0,caller,Macro,nway-start
nway-inv => **,caller,Macro,nway-ok
nway-noinv => *#,caller,Macro,nway-notok


мой вариант
[dynamic-nway]
exten => _.,1,Answer()
exten => _.,n,Set(CONFNO=&{EXTEN})
exten => _.,n,Set(MEETME_EXIT_CONTEXT=dynamic-nway-invite)
exten => _.,n,Set(DYNAMIC_FEATURES=)
exten => _.,n,MeetMe(${CONFNO},pdMX)
exten => _.,n,Hangup

[dynamic-nway-invite]
exten => 0,1,Read(DEST,dial,,i)
exten => 0,n,Set(DYNAMIC_FEATURES=nway-inv#nway-noinv)
exten => 0,n,Dial(Local/&{DEST}@dynamic-nway-dest,,g)
exten => 0,n,Set(DYNAMIC_FEATURES=)
exten => 0,n,Goto(dynamic-nway,${CONFNO},1)
exten => i,1,Goto(dynamic-nway,${CONFNO},1)

[dynamic-nway-dest]
exten => _.,1,Dial(SIP/${EXTEN})

[macro-nway-start]
exten => s,1,Set(CONFNO=${FindFreeConf()})
exten => s,n,Set(post=___Macros_nway_START_SDELAL_START___)
exten => s,n,NoOp(${post}) ;для отладки
exten => s,n,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1)
exten => s,n,Read(DEST,dial,,i)
exten => s,n,Set(DYNAMIC_FEATURES=nway-inv#nway-noinv)
exten => s,n,Dial(Local/${DEST}@dynamic-nway-dest,,g)
exten => s,n,Set(DYNAMIC_FEATURES=)
exten => s,n,Goto(dynamic-nway,${CONFNO},1)

[macro-nway-ok]
exten => s,1,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1)

[macro-nway-notok]
exten => s,1,SoftHangup(${BRIDGEPEER})

Аватара пользователя
alexgb
Сообщения: 15
Зарегистрирован: 09 авг 2011, 11:50
Контактная информация:

Сообщение alexgb » 19 авг 2011, 17:33

DYNAMIC_FEATURES в том екстеншене куда звоните прописан?

SSL
Сообщения: 34
Зарегистрирован: 06 июл 2011, 13:33

Сообщение SSL » 22 авг 2011, 08:18

DYNAMIC_FEATURES в глобальные параметры в extensions.conf. и закоментил все Set (которые переопределяют его). В таком виде как бы заработало - конференция создается, но при этом нельзя кого либо позвать в нее по ** и номер.

Samael
Сообщения: 530
Зарегистрирован: 11 мар 2009, 10:39
Откуда: Киев

Сообщение Samael » 22 авг 2011, 09:50

1. http://samael28.blogspot.com/2011/03/as ... -call.html
2.

Код: Выделить всё

exten => s,1,Set(CONFNO=${FindFreeConf()}) 
FindFreeConf - это заглушка. Тут лучше прописать номер действительной конференции.
Asterisk 1.4.30 @ Ubuntu 9.04 + Cisco MC3810 + NEC NEAX 2000IPS + Polycom IP Phones

SSL
Сообщения: 34
Зарегистрирован: 06 июл 2011, 13:33

Сообщение SSL » 22 авг 2011, 10:50

Насчет FindFreeConf уже нагуглил, что так не бывает... попробовал сделать так -

[dynamic-nway]
exten => _.,1,Answer()
exten => _.,n,Set(CONFNO=${EXTEN})
exten => _.,n,Set(MEETME_EXIT_CONTEXT=dynamic-nway-invite)
exten => _.,n,Set(DYNAMIC_FEATURES=)
exten => _.,n,MeetMe(${CONFNO},pdMX)
exten => _.,n,Hangup

[dynamic-nway-invite]
exten => 0,1,Read(DEST,dial,,i)
exten => 0,n,Set(DYNAMIC_FEATURES=nway-inv#nway-noinv)
exten => 0,n,Dial(Local/&{DEST}@dynamic-nway-dest,,g)
exten => 0,n,Set(DYNAMIC_FEATURES=)
exten => 0,n,Goto(dynamic-nway,${CONFNO},1)
exten => i,1,Goto(dynamic-nway,${CONFNO},1)

[dynamic-nway-dest]
exten => _XXX,1,Dial(SIP/${EXTEN})

[macro-nway-start]
;exten => s,1,Set(CONFNO=${FindFreeConf()}) ;было бы 3,14здато если бы это работало

exten => s,1,GotoIf($[${conf_1}=busy]?cn2:cn1) ;делаем FindFreeConf вручную
exten => s,n(cn1),Set(conf_1=busy) ;
exten => s,n,Set(CONFNO=100)
exten => s,n,Goto(start)

exten => s,n(cn2),GotoIf($[${conf_2}=busy]?cn3:)
exten => s,n,Set(conf_2=busy)
exten => s,n,Set(CONFNO=200)
exten => s,n,Goto(start)

exten => s,n(cn3),Hangup() ; пока если обе конференции заняты, то трубка кладется


exten => s,n(start),Set(post=___Macros_nway_START_SDELAL_START___)
exten => s,n,NoOp(${post}) ;для отладки
exten => s,n,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1)
exten => s,n,Read(DEST,dial,,i)
exten => s,n,Set(DYNAMIC_FEATURES=nway-inv#nway-noinv)
exten => s,n,Dial(Local/${DEST}@dynamic-nway-dest)
;exten => s,n,Set(DYNAMIC_FEATURES=)
;exten => s,n,Goto(dynamic-nway,${CONFNO},1)

[macro-nway-ok]
exten => s,1,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1)
exten => s,2,Set(DYNAMIC_FEATURES=)
exten => s,3,Goto(dynamic-nway,${CONFNO},1)

[macro-nway-notok]
exten => s,1,SoftHangup(${BRIDGEPEER})
exten => s,2,Set(DYNAMIC_FEATURES=)
exten => s,3,Goto(dynamic-nway,${CONFNO},1)


попробовал скрестить это с http://samael28.blogspot.com/2011/03/as ... -call.html

что бы по человечески сделалось. А то когда все таки создается конференция, инициатор вываливает и как то не очень понятно как в нее попасть.
В итоге получается так - при наборе *0 создается конференция, тот с кем был диалог в нее отправляется, а инициатор вываливается совсем (дисконнект). Астериск пишет следующее:

выдает [Aug 22 17:45:07] NOTICE[24750]: chan_local.c:826 local_call: No such extension/context @dynamic-nway-dest while calling Local channel

SSL
Сообщения: 34
Зарегистрирован: 06 июл 2011, 13:33

Сообщение SSL » 22 авг 2011, 12:44

2 tipadima
Благодарю! хотя почему мой код корректно не работает не ясно, но попробую твой. В нем все вроде прозрачно.

SSL
Сообщения: 34
Зарегистрирован: 06 июл 2011, 13:33

Сообщение SSL » 23 авг 2011, 12:20

2 tipadima
Код работает, БЛАГОДАРЮ! только один вопрос остался, не очень очевидно как попасть самому в конференцию в которую отравляешь людей. У меня астериск сам возвращает меня в конференцию спустя какой то тайм аут.

SSL
Сообщения: 34
Зарегистрирован: 06 июл 2011, 13:33

Сообщение SSL » 24 авг 2011, 10:16

Благодарю, все работает. еще раз внимательнее все пересмотрел.

ufik
Сообщения: 1
Зарегистрирован: 21 сен 2011, 14:07

Сообщение ufik » 21 сен 2011, 14:51

Не заводится шарманка с вашим кодом, не подскажите в чём может быть проблема ? DTMF коды понимает всё ок.

Код: Выделить всё

Core debug was 0 and is now 5
  == Using SIP RTP CoS mark 5
    -- Executing [101@default:1] Set("SIP/100-00000000", "DYNAMIC_FEATURES=nway-start") in new stack
    -- Executing [101@default:2] Dial("SIP/100-00000000", "SIP/101,,tT") in new stack
  == Using SIP RTP CoS mark 5
    -- Called 101
    -- SIP/101-00000001 is ringing
    -- SIP/101-00000001 answered SIP/100-00000000
    --  Feature Found: nway-start exten: nway-start
    -- Executing [s@macro-nway-start:1] NoOp("SIP/100-00000000", ""Macro macro-nway-start"") in new stack
    -- Executing [s@macro-nway-start:2] MeetMeCount("SIP/100-00000000", "6009,COUNT") in new stack
  == Parsing '/etc/asterisk/meetme.conf':   == Found
    -- Executing [s@macro-nway-start:3] ExecIf("SIP/100-00000000", "1,Set,CONFNO=6009") in new stack
&#91;Sep 21 12&#58;58&#58;23&#93; WARNING&#91;4329&#93;&#58; app_exec.c&#58;222 execif_exec&#58; Deprecated syntax found.  Please upgrade to using ExecIf&#40;<expr>?Set                &#40;CONFNO=6009&#41;&#41;
    -- Executing &#91;s@macro-nway-start&#58;4&#93; MeetMeCount&#40;"SIP/100-00000000", "6008,COUNT"&#41; in new stack
  == Parsing '/etc/asterisk/meetme.conf'&#58;   == Found
    -- Executing &#91;s@macro-nway-start&#58;5&#93; ExecIf&#40;"SIP/100-00000000", "1,Set,CONFNO=6008"&#41; in new stack
&#91;Sep 21 12&#58;58&#58;23&#93; WARNING&#91;4329&#93;&#58; app_exec.c&#58;222 execif_exec&#58; Deprecated syntax found.  Please upgrade to using ExecIf&#40;<expr>?Set                &#40;CONFNO=6008&#41;&#41;
    -- Executing &#91;s@macro-nway-start&#58;6&#93; MeetMeCount&#40;"SIP/100-00000000", "6007,COUNT"&#41; in new stack
  == Parsing '/etc/asterisk/meetme.conf'&#58;   == Found
    -- Executing &#91;s@macro-nway-start&#58;7&#93; ExecIf&#40;"SIP/100-00000000", "1,Set,CONFNO=6007"&#41; in new stack
&#91;Sep 21 12&#58;58&#58;23&#93; WARNING&#91;4329&#93;&#58; app_exec.c&#58;222 execif_exec&#58; Deprecated syntax found.  Please upgrade to using ExecIf&#40;<expr>?Set                &#40;CONFNO=6007&#41;&#41;
    -- Executing &#91;s@macro-nway-start&#58;8&#93; MeetMeCount&#40;"SIP/100-00000000", "6006,COUNT"&#41; in new stack
  == Parsing '/etc/asterisk/meetme.conf'&#58;   == Found
    -- Executing &#91;s@macro-nway-start&#58;9&#93; ExecIf&#40;"SIP/100-00000000", "1,Set,CONFNO=6006"&#41; in new stack
&#91;Sep 21 12&#58;58&#58;23&#93; WARNING&#91;4329&#93;&#58; app_exec.c&#58;222 execif_exec&#58; Deprecated syntax found.  Please upgrade to using ExecIf&#40;<expr>?Set                &#40;CONFNO=6006&#41;&#41;
    -- Executing &#91;s@macro-nway-start&#58;10&#93; MeetMeCount&#40;"SIP/100-00000000", "6005,COUNT"&#41; in new stack
  == Parsing '/etc/asterisk/meetme.conf'&#58;   == Found
    -- Executing &#91;s@macro-nway-start&#58;11&#93; ExecIf&#40;"SIP/100-00000000", "1,Set,CONFNO=6005"&#41; in new stack
&#91;Sep 21 12&#58;58&#58;23&#93; WARNING&#91;4329&#93;&#58; app_exec.c&#58;222 execif_exec&#58; Deprecated syntax found.  Please upgrade to using ExecIf&#40;<expr>?Set                &#40;CONFNO=6005&#41;&#41;
    -- Executing &#91;s@macro-nway-start&#58;12&#93; MeetMeCount&#40;"SIP/100-00000000", "6004,COUNT"&#41; in new stack
  == Parsing '/etc/asterisk/meetme.conf'&#58;   == Found
    -- Executing &#91;s@macro-nway-start&#58;13&#93; ExecIf&#40;"SIP/100-00000000", "1,Set,CONFNO=6004"&#41; in new stack
&#91;Sep 21 12&#58;58&#58;23&#93; WARNING&#91;4329&#93;&#58; app_exec.c&#58;222 execif_exec&#58; Deprecated syntax found.  Please upgrade to using ExecIf&#40;<expr>?Set                &#40;CONFNO=6004&#41;&#41;
    -- Executing &#91;s@macro-nway-start&#58;14&#93; MeetMeCount&#40;"SIP/100-00000000", "6003,COUNT"&#41; in new stack
  == Parsing '/etc/asterisk/meetme.conf'&#58;   == Found
    -- Executing &#91;s@macro-nway-start&#58;15&#93; ExecIf&#40;"SIP/100-00000000", "1,Set,CONFNO=6003"&#41; in new stack
&#91;Sep 21 12&#58;58&#58;23&#93; WARNING&#91;4329&#93;&#58; app_exec.c&#58;222 execif_exec&#58; Deprecated syntax found.  Please upgrade to using ExecIf&#40;<expr>?Set                &#40;CONFNO=6003&#41;&#41;
    -- Executing &#91;s@macro-nway-start&#58;16&#93; MeetMeCount&#40;"SIP/100-00000000", "6002,COUNT"&#41; in new stack
  == Parsing '/etc/asterisk/meetme.conf'&#58;   == Found
    -- Executing &#91;s@macro-nway-start&#58;17&#93; ExecIf&#40;"SIP/100-00000000", "1,Set,CONFNO=6002"&#41; in new stack
&#91;Sep 21 12&#58;58&#58;23&#93; WARNING&#91;4329&#93;&#58; app_exec.c&#58;222 execif_exec&#58; Deprecated syntax found.  Please upgrade to using ExecIf&#40;<expr>?Set                &#40;CONFNO=6002&#41;&#41;
    -- Executing &#91;s@macro-nway-start&#58;18&#93; MeetMeCount&#40;"SIP/100-00000000", "6001,COUNT"&#41; in new stack
  == Parsing '/etc/asterisk/meetme.conf'&#58;   == Found
    -- Executing &#91;s@macro-nway-start&#58;19&#93; ExecIf&#40;"SIP/100-00000000", "1,Set,CONFNO=6001"&#41; in new stack
&#91;Sep 21 12&#58;58&#58;23&#93; WARNING&#91;4329&#93;&#58; app_exec.c&#58;222 execif_exec&#58; Deprecated syntax found.  Please upgrade to using ExecIf&#40;<expr>?Set                &#40;CONFNO=6001&#41;&#41;
    -- Executing &#91;s@macro-nway-start&#58;20&#93; MeetMeCount&#40;"SIP/100-00000000", "6000,COUNT"&#41; in new stack
  == Parsing '/etc/asterisk/meetme.conf'&#58;   == Found
    -- Executing &#91;s@macro-nway-start&#58;21&#93; ExecIf&#40;"SIP/100-00000000", "1,Set,CONFNO=6000"&#41; in new stack
&#91;Sep 21 12&#58;58&#58;23&#93; WARNING&#91;4329&#93;&#58; app_exec.c&#58;222 execif_exec&#58; Deprecated syntax found.  Please upgrade to using ExecIf&#40;<expr>?Set                &#40;CONFNO=6000&#41;&#41;
    -- Executing &#91;s@macro-nway-start&#58;22&#93; NoOp&#40;"SIP/100-00000000", ""Number conference is 6000""&#41; in new stack
    -- Executing &#91;s@macro-nway-start&#58;23&#93; ChannelRedirect&#40;"SIP/100-00000000", "SIP/101-00000001,dynamic-nway,6000,1"&#41; in new stac                k
    -- Executing &#91;s@macro-nway-start&#58;24&#93; Read&#40;"SIP/100-00000000", "DEST,dial,,i"&#41; in new stack
  == Starting SIP/101-00000001 at dynamic-nway,6000,1 failed so falling back to exten 's'
  == Starting SIP/101-00000001 at dynamic-nway,s,1 still failed so falling back to context 'default'
&#91;Sep 21 12&#58;58&#58;23&#93; WARNING&#91;4331&#93;&#58; pbx.c&#58;4370 __ast_pbx_run&#58; Channel 'SIP/101-00000001' sent into invalid extension 's' in context                 'default', but no invalid handler
    -- User entered nothing.
    -- Executing &#91;s@macro-nway-start&#58;25&#93; Set&#40;"SIP/100-00000000", "DYNAMIC_FEATURES=nway-inv#nway-noinv"&#41; in new stack
    -- Executing &#91;s@macro-nway-start&#58;26&#93; Dial&#40;"SIP/100-00000000", "Local/@dynamic-nway-dest,,g"&#41; in new stack
&#91;Sep 21 12&#58;58&#58;33&#93; NOTICE&#91;4329&#93;&#58; chan_local.c&#58;538 local_call&#58; No such extension/context @dynamic-nway-dest while calling Local ch                annel
    -- Couldn't call @dynamic-nway-dest
  == Everyone is busy/congested at this time &#40;0&#58;0/0/0&#41;
    -- Executing &#91;s@macro-nway-start&#58;27&#93; Set&#40;"SIP/100-00000000", "DYNAMIC_FEATURES="&#41; in new stack
    -- Executing &#91;s@macro-nway-start&#58;28&#93; ChannelRedirect&#40;"SIP/100-00000000", "SIP/100-00000000,dynamic-nway,6000,1"&#41; in new stac                k
  == Channel 'SIP/100-00000000' jumping out of macro 'nway-start'
  == Spawn extension &#40;dynamic-nway, 6000, 1&#41; exited non-zero on 'SIP/100-00000000'
&#91;Sep 21 12&#58;58&#58;33&#93; WARNING&#91;4329&#93;&#58; pbx.c&#58;4370 __ast_pbx_run&#58; Channel 'SIP/100-00000000' sent into invalid extension '6000' in cont                ext 'dynamic-nway', but no invalid handler

funnybunny
Сообщения: 14
Зарегистрирован: 23 сен 2011, 09:43

Сообщение funnybunny » 19 дек 2011, 14:19

Некропостинг, но вдруг кто из понимающих подписан на эту тему.

Попытался реализовать тоже самое в trixbox, но он не разпознает *0.

Подробнее здесь http://asteriskforum.ru/viewtopic.php?t ... highlight=

Очень нужна консультация.

SSL
Сообщения: 34
Зарегистрирован: 06 июл 2011, 13:33

Сообщение SSL » 03 фев 2012, 10:54

В общем не все так хорошо. Прикрутил к астериску Linksys spa3102. Завел в нее городскую линию. Подключил аппарат к ней. Все работает в плене - звонок из города идет в астериск и далее орабатывает так как должен (звонят соответствующие телефоны, софтфоны), звонок в город тоже прекрасно проходит. Перенаправление вызывав городских и пр тоже работает. Но с выше обсуждаемой конференцией опять проблемы -
звонок из города. Отвечаем на вызов, *0 отправляем в конференцию, но на том конце провода (в городе) тишина. Хотя должна играть музыка и сообщение что вы сейчас в конференции один и т.д. Так же есть глюки когда остаются активные диалоги, хотя все участники уже давно положили трубки.
[globals]; можно указывать различные глобальные (доступные для всех контекстов) переменные
DYNAMIC_FEATURES=nway-start#nway-inv#nway-noinv

;конфиг лист
[dynamic-nway]
exten => _600X,1,NoOp("ZAPUSCHEN_DYNAMIC-NWAY")
exten => _600X,n,Answer()
exten => _600X,n,Set(CONFNO=${EXTEN})
exten => _600X,n,Set(MEETME_EXIT_CONTEXT=dynamic-nway-invite)
exten => _600X,n,Set(DYNAMIC_FEATURES=)
exten => _600X,n,MeetMe(${CONFNO},dMX)
exten => _600X,n,Hangup()

[dynamic-nway-invite]
exten => *1,1,NoOp("ZAPUSCHEN_DYNAMIC-NWAY-INVITE")
exten => *1,n,Read(DEST,dial,,i)
exten => *1,n,Set(DYNAMIC_FEATURES=nway-inv#nway-noinv)
exten => *1,n,Dial(Local/&{DEST}@dynamic-nway-dest,,g)
exten => *1,n,Set(DYNAMIC_FEATURES=)
exten => *1,n,Goto(dynamic-nway,${CONFNO},1)
exten => i,1,Goto(dynamic-nway,${CONFNO},1)

[dynamic-nway-dest]
exten => _X.,1,NoOp("ZAPUSCHEN_DYNAMIC-NWAY-DEST")
exten => _X.,2,Dial(SIP/${EXTEN},50)

[macro-nway-start]

exten => s,1(start),Set(post=___Macros_nway_START_SDELAL_START___)
exten => s,n,NoOp(${post}) ;для отладки


exten => s,n,MeetMeCount(6009,COUNT)
exten => s,n,ExecIf($[${COUNT}=0],Set,CONFNO=6009)
exten => s,n,MeetMeCount(6008,COUNT)
exten => s,n,ExecIf($[${COUNT}=0],Set,CONFNO=6008)
exten => s,n,MeetMeCount(6007,COUNT)
exten => s,n,ExecIf($[${COUNT}=0],Set,CONFNO=6007)

exten => s,n,NoOp("NOMER_CONFERA-${CONFNO}")


exten => s,n,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1)
exten => s,n,Read(DEST,dial,,i)
exten => s,n,Set(DYNAMIC_FEATURES=nway-inv#nway-noinv)
exten => s,n,Dial(Local/${DEST}@dynamic-nway-dest,,g)
exten => s,n,Set(DYNAMIC_FEATURES=)
exten => s,n,ChannelRedirect(${CDR(Channel)},dynamic-nway,${CONFNO},1)
exten => s,n,Goto(dynamic-nway,${CONFNO},1)

[macro-nway-ok]
exten => s,1,NoOp("MACROS_NWAY-OK")
exten => s,1,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1)
;exten => s,2,Set(DYNAMIC_FEATURES=)
;exten => s,3,Goto(dynamic-nway,${CONFNO},1)

[office]

exten => 198,1,Macro(ats1,198,SIP/198)

exten => 100,1,Macro(ats1,100,SIP/100)

exten => 103,1,Macro(ats1,103,SIP/103)

exten => 102,1,Macro(ats1,102,SIP/102)

exten => 105,1,Macro(ats1,105,SIP/105)

exten => 106,1,Macro(ats1,106,SIP/106)

exten => 107,1,Macro(ats1,107,SIP/107)

exten => 108,1,Macro(ats1,108,SIP/108)

exten => 202,1,Macro(ats1,202,SIP/202)

exten => _9.,1,Dial(SIP/pstn/${EXTEN:1},,t);выход на город с префиксо 9
exten => _9.,n,NoOp(${EXTEN:1})
exten => _9.,n,Hangup()

exten => 223,1,Dial(SIP/198&SIP/100,10,tT);из города в офис
exten => 223,n,Hangup()


[macro-ats1]
exten => s,1,Set(VOLUME(TX)=6)
exten => s,n,Set(VOLUME(RX)=6)
exten => s,n,Dial(${ARG2},25,tT)

exten => s,n,Hangup()

Added after 3 minutes:

То что в консоли при этом всем

== Using SIP RTP CoS mark 5
-- Executing [223@office:1] Dial("SIP/pstn-00000002", "SIP/198&SIP/100,10,tT") in new stack
== Using SIP RTP CoS mark 5
-- Called 198
[Feb 3 13:33:43] WARNING[9101]: app_dial.c:2041 dial_exec_full: Unable to create channel of type 'SIP' (cau se 20 - Unknown)
-- SIP/198-00000003 is ringing
-- SIP/198-00000003 answered SIP/pstn-00000002
-- Feature Found: nway-start exten: nway-start
-- Executing [s@macro-nway-start:1] Set("SIP/198-00000003", "post=___Macros_nway_START_SDELAL_START___") in new stack
-- Executing [s@macro-nway-start:2] NoOp("SIP/198-00000003", "___Macros_nway_START_SDELAL_START___") in new stack
-- Executing [s@macro-nway-start:3] MeetMeCount("SIP/198-00000003", "6009,COUNT") in new stack
== Parsing '/etc/asterisk/meetme.conf': == Found
-- Executing [s@macro-nway-start:4] ExecIf("SIP/198-00000003", "1,Set,CONFNO=6009") in new stack
[Feb 3 13:34:02] WARNING[9101]: app_exec.c:228 execif_exec: Deprecated syntax found. Please upgrade to usi ng ExecIf(<expr>?Set(CONFNO=6009))
-- Executing [s@macro-nway-start:5] MeetMeCount("SIP/198-00000003", "6008,COUNT") in new stack
== Parsing '/etc/asterisk/meetme.conf': == Found
-- Executing [s@macro-nway-start:6] ExecIf("SIP/198-00000003", "1,Set,CONFNO=6008") in new stack
[Feb 3 13:34:02] WARNING[9101]: app_exec.c:228 execif_exec: Deprecated syntax found. Please upgrade to usi ng ExecIf(<expr>?Set(CONFNO=6008))
-- Executing [s@macro-nway-start:7] MeetMeCount("SIP/198-00000003", "6007,COUNT") in new stack
== Parsing '/etc/asterisk/meetme.conf': == Found
-- Executing [s@macro-nway-start:8] ExecIf("SIP/198-00000003", "1,Set,CONFNO=6007") in new stack
[Feb 3 13:34:02] WARNING[9101]: app_exec.c:228 execif_exec: Deprecated syntax found. Please upgrade to usi ng ExecIf(<expr>?Set(CONFNO=6007))
-- Executing [s@macro-nway-start:9] NoOp("SIP/198-00000003", ""NOMER_CONFERA-6007"") in new stack
-- Executing [s@macro-nway-start:10] ChannelRedirect("SIP/198-00000003", "SIP/pstn-00000002,dynamic-nway ,6007,1") in new stack
-- Executing [s@macro-nway-start:11] Read("SIP/198-00000003", "DEST,dial,,i") in new stack
-- User entered '105'
-- Executing [s@macro-nway-start:12] Set("SIP/198-00000003", "DYNAMIC_FEATURES=nway-inv#nway-noinv") in new stack
-- Executing [s@macro-nway-start:13] Dial("SIP/198-00000003", "Local/105@dynamic-nway-dest,,g") in new s tack
-- Called 105@dynamic-nway-dest
-- Executing [105@dynamic-nway-dest:1] NoOp("Local/105@dynamic-nway-dest-e03c;2", ""ZAPUSCHEN_DYNAMIC-NW AY-DEST"") in new stack
-- Executing [105@dynamic-nway-dest:2] Dial("Local/105@dynamic-nway-dest-e03c;2", "SIP/105,50") in new s tack
== Using SIP RTP CoS mark 5
-- Called 105
-- SIP/105-00000004 is ringing
-- Local/105@dynamic-nway-dest-e03c;1 is ringing
-- SIP/105-00000004 answered Local/105@dynamic-nway-dest-e03c;2
-- Local/105@dynamic-nway-dest-e03c;1 answered SIP/198-00000003
== Spawn extension (dynamic-nway-dest, 105, 2) exited non-zero on 'Local/105@dynamic-nway-dest-e03c;2'
-- Feature Found: nway-inv exten: nway-inv
-- Executing [s@macro-nway-ok:1] NoOp("SIP/198-00000003", ""MACROS_NWAY-OK"") in new stack
== Spawn extension (macro-nway-start, s, 13) exited non-zero on 'SIP/198-00000003' in macro 'nway-start'
-- Executing [6007@dynamic-nway:1] NoOp("SIP/pstn-00000002", ""ZAPUSCHEN_DYNAMIC-NWAY"") in new stack


Непонятно где косяк у меня...

SSL
Сообщения: 34
Зарегистрирован: 06 июл 2011, 13:33

Сообщение SSL » 10 фев 2012, 11:51

Подправил диалплан. При нажатии *1 он не дает набрать номер того кого хочешь подключить к конференции. В процессе выдает вот такое.


-- Couldn't call 1@dynamic-nway-dest
== Everyone is busy/congested at this time (0:0/0/0)

У меня он выглядит так
[dynamic-nway-dest]
exten => _X.,1,NoOp("ZAPUSCHEN_DYNAMIC-NWAY-DEST")
exten => _X.,2,Dial(SIP/${EXTEN},50)


Лог целиком с момента нажатия *1

Код: Выделить всё

 -- Executing &#91;*@dynamic-nway-invite&#58;1&#93; NoOp&#40;"SIP/105-00000000", ""ZAPUSCHEN_DYNAMIC-NWAY-INVITE""&#41; in new stack
    -- Executing &#91;*@dynamic-nway-invite&#58;2&#93; Read&#40;"SIP/105-00000000", "DEST,,1,,,1"&#41; in new stack
    -- Accepting a maximum of 1 digits.
    -- Started music on hold, class 'default', on SIP/202-00000001
    -- Stopped music on hold on SIP/202-00000001
    -- User entered '1'
    -- Executing &#91;*@dynamic-nway-invite&#58;3&#93; ExecIf&#40;"SIP/105-00000000", "0?Goto&#40;return&#41;"&#41; in new stack
    -- Executing &#91;*@dynamic-nway-invite&#58;4&#93; NoOp&#40;"SIP/105-00000000", "1"&#41; in new stack
    -- Executing &#91;*@dynamic-nway-invite&#58;5&#93; Dial&#40;"SIP/105-00000000", "Local/1@dynamic-nway-dest,,g"&#41; in new stack
&#91;Feb 10 14&#58;31&#58;04&#93; NOTICE&#91;6190&#93;&#58; chan_local.c&#58;826 local_call&#58; No such extension/context 1@dynamic-nway-dest while calling Local channel
    -- Couldn't call 1@dynamic-nway-dest
  == Everyone is busy/congested at this time &#40;0&#58;0/0/0&#41;
    -- Executing &#91;*@dynamic-nway-invite&#58;6&#93; Set&#40;"SIP/105-00000000", "DYNAMIC_FEATURES="&#41; in new stack
    -- Executing &#91;*@dynamic-nway-invite&#58;7&#93; Goto&#40;"SIP/105-00000000", "dynamic-nway,6007,1"&#41; in new stack
    -- Goto &#40;dynamic-nway,6007,1&#41;
    -- Executing &#91;6007@dynamic-nway&#58;1&#93; NoOp&#40;"SIP/105-00000000", ""ZAPUSCHEN_DYNAMIC-NWAY""&#41; in new stack
    -- Executing &#91;6007@dynamic-nway&#58;2&#93; Answer&#40;"SIP/105-00000000", ""&#41; in new stack
    -- Executing &#91;6007@dynamic-nway&#58;3&#93; Set&#40;"SIP/105-00000000", "CONFNO=6007"&#41; in new stack
    -- Executing &#91;6007@dynamic-nway&#58;4&#93; Set&#40;"SIP/105-00000000", "MEETME_EXIT_CONTEXT=dynamic-nway-invite"&#41; in new stack
    -- Executing &#91;6007@dynamic-nway&#58;5&#93; Set&#40;"SIP/105-00000000", "DYNAMIC_FEATURES="&#41; in new stack
    -- Executing &#91;6007@dynamic-nway&#58;6&#93; MeetMe&#40;"SIP/105-00000000", "6007,dMX"&#41; in new stack

Код: Выделить всё

&#91;globals&#93;;
DYNAMIC_FEATURES=nway-start#nway-inv#nway-noinv

;конфиг лист
&#91;dynamic-nway&#93;
exten => _600X,1,NoOp&#40;"ZAPUSCHEN_DYNAMIC-NWAY"&#41;
exten => _600X,n,Answer&#40;&#41;
exten => _600X,n,Set&#40;CONFNO=$&#123;EXTEN&#125;&#41;
exten => _600X,n,Set&#40;MEETME_EXIT_CONTEXT=dynamic-nway-invite&#41;
exten => _600X,n,Set&#40;DYNAMIC_FEATURES=&#41;
exten => _600X,n,MeetMe&#40;$&#123;CONFNO&#125;,dMX&#41;
exten => _600X,n,Hangup&#40;&#41;

&#91;dynamic-nway-invite&#93;
exten => _*,1,NoOp&#40;"ZAPUSCHEN_DYNAMIC-NWAY-INVITE"&#41;
exten => _*,n,Read&#40;DEST,,1,,,1&#41;
exten => _*,n,ExecIf&#40;$&#91;$&#123;DEST&#125;!=1&#93;?Goto&#40;return&#41;&#41;
exten => _*,n,NoOp&#40;$&#123;DEST&#125;&#41;
;exten => _*1,n,Set&#40;DYNAMIC_FEATURES=nway-inv#nway-noinv&#41;
exten => _*,n,Dial&#40;Local/$&#123;DEST&#125;@dynamic-nway-dest,,g&#41;
exten => _*,n,Set&#40;DYNAMIC_FEATURES=&#41;
exten => _*,n&#40;return&#41;,Goto&#40;dynamic-nway,$&#123;CONFNO&#125;,1&#41;
;exten => i,1,Goto&#40;dynamic-nway,$&#123;CONFNO&#125;,1&#41;

&#91;dynamic-nway-dest&#93;
exten => _X.,1,NoOp&#40;"ZAPUSCHEN_DYNAMIC-NWAY-DEST"&#41;
exten => _X.,2,Dial&#40;SIP/$&#123;EXTEN&#125;,50&#41;

&#91;macro-nway-start&#93;
exten => s,1&#40;start&#41;,Set&#40;post=___Macros_nway_START_SDELAL_START___&#41;
exten => s,n,NoOp&#40;$&#123;post&#125;&#41;                                            ;для отладки


exten => s,n,MeetMeCount&#40;6009,COUNT&#41;                ;в переменную count кладется число учасник$
exten => s,n,ExecIf&#40;$&#91;$&#123;COUNT&#125;=0&#93;?Set&#40;CONFNO=6009&#41;&#41;  ;если в 6009 ноль учасников то confno рав$
exten => s,n,MeetMeCount&#40;6008,COUNT&#41;
exten => s,n,ExecIf&#40;$&#91;$&#123;COUNT&#125;=0&#93;?Set&#40;CONFNO=6008&#41;&#41; ;синтаксис надо проверить
exten => s,n,MeetMeCount&#40;6007,COUNT&#41;
exten => s,n,ExecIf&#40;$&#91;$&#123;COUNT&#125;=0&#93;?Set&#40;CONFNO=6007&#41;&#41;

exten => s,n,NoOp&#40;"NOMER_CONFERA-$&#123;CONFNO&#125;"&#41;

exten => s,n,ChannelRedirect&#40;$&#123;BRIDGEPEER&#125;,dynamic-nway,$&#123;CONFNO&#125;,1&#41;
exten => s,n,Read&#40;DEST,dial,,i&#41;
exten => s,n,Set&#40;DYNAMIC_FEATURES=nway-inv#nway-noinv&#41;
exten => s,n,Dial&#40;Local/$&#123;DEST&#125;@dynamic-nway-dest,,g&#41;
exten => s,n,Set&#40;DYNAMIC_FEATURES=&#41;
exten => s,n,ChannelRedirect&#40;$&#123;CDR&#40;Channel&#41;&#125;,dynamic-nway,$&#123;CONFNO&#125;,1&#41;
exten => s,n,Goto&#40;dynamic-nway,$&#123;CONFNO&#125;,1&#41;

&#91;macro-nway-ok&#93;
exten => s,1,NoOp&#40;"MACROS_NWAY-OK"&#41;
exten => s,n,ChannelRedirect&#40;$&#123;BRIDGEPEER&#125;,dynamic-nway,$&#123;CONFNO&#125;,1&#41;
;exten => s,2,Set&#40;DYNAMIC_FEATURES=&#41;
;exten => s,3,Goto&#40;dynamic-nway,$&#123;CONFNO&#125;,1&#41;

&#91;macro-nway-notok&#93;
exten => s,1,NoOp&#40;"MACROS_NWAY-NOTOK"&#41;
exten => s,n,SoftHangup&#40;$&#123;BRIDGEPEER&#125;&#41;

SSL
Сообщения: 34
Зарегистрирован: 06 июл 2011, 13:33

Сообщение SSL » 16 фев 2012, 10:23

"Семен Семеныч..."(с) Да, что то ступил)))

SSL
Сообщения: 34
Зарегистрирован: 06 июл 2011, 13:33

Сообщение SSL » 29 мар 2012, 11:47

Странная вещь - после набора *0 - конференция создается, собеседник туда отправляется. В трубке гудок. Набираю номер... и почемуто в переменную DEST номер записывается без первой цифры... очень непонятно где она пропадает.
Debian + Asterisk 1.8.11.1 + spa3102 + spa8000

denis000
Сообщения: 100
Зарегистрирован: 15 авг 2011, 06:46

Сообщение denis000 » 11 апр 2014, 09:14

Здравсвуйте!
Да бы не создавать новый топип. Пишу тут.
Создал по Вашим конфигам динамическую конференцию, всё работает отлично в рамках того контекста, в котором находится пир создающий конференцию.
Т.е. если 102 создаёт конференцию со 105, и может добавить туда дюбого абонегта из 1ХХ
А Вот как сделать, чтобы сюда добавить внешнего абонента.
Вот кусок диалплана, через который я вахожу в город.

Код: Выделить всё

&#91;local-phones&#93;
include => gorod
exten => _&#91;1&#93;XX,1,Dial&#40;SIP/$&#123;EXTEN&#125;,90,t&#41;
same =>         n,Hangup

exten => _&#91;1&#93;XX,hint,SIP/$&#123;EXTEN&#125;


&#91;gorod&#93;
exten => _98XXXXXXXXXX,1,Dial&#40;SIP/sipnet/9$&#123;EXTEN&#58;1&#125;&#41;
same =>                n,Hangup
Вот что в консоли получается:
-- Created MeetMe nwayerence 1023 for nwayerence '6000'
-- <SIP/sipnet-00000017> Playing 'nway-onlyperson.gsm' (language 'ru')
-- Started music on hold, class 'default', on SIP/sipnet-00000017
-- Stopped music on hold on SIP/sipnet-00000017
-- Started music on hold, class 'default', on SIP/sipnet-00000017
-- User entered '89120000000'
-- Executing [s@macro-nway-start] Set("SIP/102-00000016", "DYNAMIC_FEATURES=nway-inv#nway-noinv") in new stack
-- Executing [s@macro-nway-start] Dial("SIP/102-00000016", "Local/89120000000@dynamic-nway-dest,,g") in new stack
-- Called Local/89120000000@dynamic-nway-dest
-- Executing [89120000000@dynamic-nway-dest] NoOp("Local/89120000000@dynamic-nway-dest-0000000c;2", ""Context dynamic-nway-dest"") in new stack
-- Executing [89120000000@dynamic-nway-dest] Dial("Local/89120000000@dynamic-nway-dest-0000000c;2", "SIP/89120000000,50") in new stack
[Apr 11 10] WARNING[20639]: chan_sip.c:5824 create_addr: Purely numeric hostname (89120000000), and not a peer--rejecting!
[Apr 11 10] WARNING[20639]: app_dial.c:2345 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Subscriber absent)

== Everyone is busy/congested at this time (1:0/0/1)
-- Auto fallthrough, channel 'Local/89120000000@dynamic-nway-dest-0000000c;2' status is 'CHANUNAVAIL'
-- Local/89120000000@dynamic-nway-dest-0000000c;1 is circuit-busy
== Everyone is busy/congested at this time (1:0/1/0)

Added after 1 hours 14 minutes:

Разобрался.
Нужно сделать так:

Код: Выделить всё

&#91;dynamic-nway-dest&#93;
exten => _&#91;1&#93;XX,1,Dial&#40;SIP/$&#123;EXTEN&#125;&#41;
exten => _98XXXXXXXXXX,1,Dial&#40;SIP/sipnet/9$&#123;EXTEN&#58;1&#125;&#41;

jockerr
Сообщения: 1
Зарегистрирован: 04 июл 2014, 09:15

Конференции в астериск

Сообщение jockerr » 04 июл 2014, 10:02

Привет!
Сразу прошу не пинать, если пишу не то и не там.
По работе возникла необходимость организовать сип-телефонию. Был установлен Elastix 2.4.0 на виртуальную машину. Настройка вся проводилась через web-интерфейс, т.к. я не программист. В результате работает созвон абонентов один-на-один и работают конференции посредством создания комнат на сервере. Участники конференции созваниваются на определенный номер, вводят пин-код и беседуют и т.д. ... Теперь необходимо реализовать возможность создания конференций самому звонящему, и, путем нажатия какой-либо комбинации клавиш добавлять нужных абонентов к конференции. Поскольку я не программист, вопрос таков: есть ли уже готовые коды для реализации данного функционала? Или же придется всё-таки писать самому?

Заранее благодарен!

unijohnson
Сообщения: 3
Зарегистрирован: 27 июл 2018, 07:56

Re: features.conf в asterisk 1.8.4.1

Сообщение unijohnson » 27 июл 2018, 08:07

есть ли уже готовые коды для реализации данного функционала? Или же придется всё-таки писать самому?
Прошу прощения, а можно чуть подробней расписать это:
add features.conf:

[applicationmap]
nway-start => *0,caller,Macro,nway-start
nway-inv => **,caller,Macro,nway-ok
nway-noinv => *#,caller,Macro,nway-notok

add extensions.conf и так далее
..................................
Это на странице https://awsswa.livejournal.com/11103.html
А именно не понятно, в какие конфигурационные файлы вносить изменения?

virus_net
Сообщения: 438
Зарегистрирован: 05 окт 2014, 06:10
Откуда: Москва
Контактная информация:

Re: features.conf в asterisk 1.8.4.1

Сообщение virus_net » 28 июл 2018, 06:30

Если features.conf и extensions.conf вам ни о чем не говорят, то завязывайте с попытками администрировать Астериск и займитесь свои делом, т.к. это дело точно не ваше.
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)
- whois сервис: whois.bitname.ru или whois.bitname.bit
- dns сервис: dns1.bitname.ru dns2.bitname.ru
- статистика по доменам
ENUMER - звони бесплатно и напрямую.

unijohnson
Сообщения: 3
Зарегистрирован: 27 июл 2018, 07:56

Re: features.conf в asterisk 1.8.4.1

Сообщение unijohnson » 30 июл 2018, 13:55

Я наверно вопрос неконкретно задал.
Вопрос по FreePbx, в котором есть features.conf
Он содержит:

[general]
#include features_general_additional.conf
#include features_general_custom.conf

[applicationmap]
#include features_applicationmap_additional.conf
#include features_applicationmap_custom.conf

[featuremap]
#include features_featuremap_additional.conf
#include features_featuremap_custom.conf

Я так понял (и может заблуждаюсь), мне надо внести изменения в файлы:

features_applicationmap_custom.conf
и
extensions_custom.conf

Но что прописать и где, чтобы стартовал nway-start?
Переадресовка, например, стартует по коду atxfer=*2 в файле features_featuremap_additional.conf

Добавить код в features_general_custom.conf или features_featuremap_custom.conf ?
и какой код? Что сделать, чтобы цепочка срослась?

Спасибо.

Ответить