Comments 14
хорошая статья, пришлось как раз все это постигать по кусочкам месяца два назад для нового проекта ) жаль тогда этого матерала не было
хороший проект PAMI (php ami) хотя очень скудная документация (можно сказать её нет) но пользоваться все равно удобно
хороший проект PAMI (php ami) хотя очень скудная документация (можно сказать её нет) но пользоваться все равно удобно
0
Спасибо. PAMI мне понравился, прост в использовании, заслуживает внимания. Документации не много, согласен.
0
У PAMI скудная документация, но это компенсируется большим кол-вом примеров и официальной докой астера. А вообще какие то простые вещи можно реализовать через fsock.
0
Спасибо, Алексей. Вы пишите хорошо и интересно. Я в свое время делал проект с использованием AMI. На тот момент не смог реализовать функцию hold (постановка на удержание). Не знаете, можно ли это реализовать на ami сейчас?
0
Спасибо за отзыв. Я в нашем проекте воспользовался парковкой вызова.
Кратко алгоритм и пример:
При этом, "Parkinglot" не указывать. Вызов будет помещен на свободный слот.
"Timeout" — через указанное время вызов вернется обратно.
Далее анализировать event:
Снять с такого «удержания» возможно позвонив на слот парковки, простой "originate".
Кратко алгоритм и пример:
Action: Park
Channel: SIP/104-000001ce
Parkinglot:
Timeout: 30000
При этом, "Parkinglot" не указывать. Вызов будет помещен на свободный слот.
"Timeout" — через указанное время вызов вернется обратно.
Далее анализировать event:
- "ParkedCall" — тут можем понять на какой слот попал наш клиент.
- "UnParkedCall" и "ParkedCallGiveUp" — event оповещяет о завершении парковки.
Снять с такого «удержания» возможно позвонив на слот парковки, простой "originate".
0
Многие примеры, которые вы привели, работать не будут, из-за лишнего параметра Priority
Параметр Priority используется только вместе с Context, Exten
Команда Originate ответит вам «extension not found»
Параметр Priority используется только вместе с Context, Exten
Команда Originate ответит вам «extension not found»
текст примера
Action: Originate
Channel: SIP/104
Application: PickupChan
Data: SIP/104-0000003c
Priority: 1
Callerid: 104
Variable: SIPADDHEADER=«Call-Info:\;answer-after=0»
Channel: SIP/104
Application: PickupChan
Data: SIP/104-0000003c
Priority: 1
Callerid: 104
Variable: SIPADDHEADER=«Call-Info:\;answer-after=0»
0
Прошу описать детали, на какой версии Asterisk проявляется? Есть ли ссылка на более подробную документацию. Не сталкивался с описанной ситуацией.
Все примеры из текущей статьи тестировалась на Asterisk 10.9.0.
Кроме того, используются в реальном проекте.
Версии Asterisk — начиная с 1.8 и заканчивая 13.
На некоторых АТС было замечено поведение — если не указан "Priority", то originate завершается с ошибкой.
Все примеры из текущей статьи тестировалась на Asterisk 10.9.0.
Кроме того, используются в реальном проекте.
Версии Asterisk — начиная с 1.8 и заканчивая 13.
На некоторых АТС было замечено поведение — если не указан "Priority", то originate завершается с ошибкой.
0
Документация есть на официальном Wiki
Вот цитата:
Насколько я помню, так было всегда — еще с версии 1.4 и вряд ли это изменится.
Упрощенно, Priority — это номер строки в описании экстена. А сам экстен не располагается в вакууме — ему нужен контекст. Примере ниже 1,2,4 — это и есть Priority
Подумайте, какой смысл в Priority, если нет ни экстена, ни контекста? Что приоритезировать? Вы же отдаете управление в апликуху, а не в диалплан…
Алексей, у вас же не совсем Астериск, у вас его форк — Аскозия. Вполне возможно, что разработчики Аскозии что-то там подправили и просто тихо игнорируют параметр, в котором нет смысла. А вот Астериск выдаст ошибку и будет прав.
Вот цитата:
Priority — Priority to use (requires Exten and Context)
Насколько я помню, так было всегда — еще с версии 1.4 и вряд ли это изменится.
Упрощенно, Priority — это номер строки в описании экстена. А сам экстен не располагается в вакууме — ему нужен контекст. Примере ниже 1,2,4 — это и есть Priority
Пример с Asterisk-Wiki
Within each extension, there must be one or more priorities. A priority is simply a sequence number. The first priority on an extension is executed first. When it finishes, the second priority is executed, and so forth.
exten => 6123,1,do something
exten => 6123,2,do something else
exten => 6123,4,do something different
exten => 6123,1,do something
exten => 6123,2,do something else
exten => 6123,4,do something different
Подумайте, какой смысл в Priority, если нет ни экстена, ни контекста? Что приоритезировать? Вы же отдаете управление в апликуху, а не в диалплан…
Все примеры из текущей статьи тестировалась на Asterisk 10.9.0.
Кроме того, используются в реальном проекте.
Версии Asterisk — начиная с 1.8 и заканчивая 13.
Алексей, у вас же не совсем Астериск, у вас его форк — Аскозия. Вполне возможно, что разработчики Аскозии что-то там подправили и просто тихо игнорируют параметр, в котором нет смысла. А вот Астериск выдаст ошибку и будет прав.
0
Забыл добавить к предыдущему посту, что сама статья — хорошая, важная и нужная. Спасибо за статью
+1
Спасибо за комментарий. Обязательно перепроверим.
Да, с этим знаком, доку читал.
Я на текущий момент не могу привести точный пример, но был случай с одной из станций, где без этого параметра не работала команда.
От части согласен с Вами, но в моем понимании свойство просто игнорируется если не назначены "Exten" и "Context".
Помимо Askozia наше работает и с прочими атс:
Priority — Priority to use (requires Exten and Context)
Да, с этим знаком, доку читал.
Я на текущий момент не могу привести точный пример, но был случай с одной из станций, где без этого параметра не работала команда.
Подумайте, какой смысл в Priority, если нет ни экстена, ни контекста
От части согласен с Вами, но в моем понимании свойство просто игнорируется если не назначены "Exten" и "Context".
у вас же не совсем Астериск, у вас его форк — Аскозия
Помимо Askozia наше работает и с прочими атс:
- MyPBX U серии (там кстати Asterisk 1.6 версии), это особый случай, не все примеры описанные выше применимы.
- АТС на базе Asterisk с 1.8 по 13 версии
0
Точно!
T 127.0.0.1:5038 -> 127.0.0.1:39664 [AP]
Message: Extension does not exist…
#
T 127.0.0.1:5038 -> 127.0.0.1:39664 [AP]
Message: Extension does not exist…
#
0
Может кто подскажет как можно соединить 2 внешних абонента. Не использую внутренний номер sip. По аналогии что бы в место Channel: SIP/104-000001ce было скажем Phone: 89123456789
0
Sign up to leave a comment.
AMI. Разносторонний Originate. Применение в CTI приложении