Интеграция 1с и asterisk

1. most_fucking 09.09.20 10:41 Сейчас в теме
Доброе утро, коллеги!

Уверен вопрос звучал неоднократно, но все же толковой информации или какого-то гайда найти не могу.

Суть задачи: необходимо реализовать звонки из 1С через asterisk...

Вопросы: Нужна ли звонилка для этого, Где взять документацию по работе с asterisk.

Если есть толковый совет или вы уже такое реализовали, напишите, или киньте ссылку на статью.
По теме из базы знаний
Найденные решения
2. papami 55 09.09.20 11:29 Сейчас в теме
Тут варианты:
1) Если только сделать вызов, т.е. на столе стоит телефон (или есть софтфон в компе) и из 1с послать команду набора номера, то достаточно вызова по http. Астер позвонит на внутренний и при поднятии трубки пойдет набор внешнего номера. Есть описание на официальном сайте.

Процедура НабратьНомер(НомерТелефона)
	 Линия=ПолучитьЛинию();	 
	 Если ЗначениеЗаполнено(Линия) Тогда
		 http=Новый HTTPСоединение("192.168.1.50",8088,,,,Ложь);
		 
		 httpPost=Новый HTTPЗапрос("ari/channels?context=from-internal&endpoint=PJSIP%2F"+Линия+"&extension="+НомерТелефон­а+"&api_key=12345>&callerId=""1C""<"+Линия+">");
	 
		 ОтветСервера=http.ОтправитьДляОбработки(httpPost);
		 Если ОтветСервера.КодСостояния=200 Тогда
			 
		 КонецЕсли;
	 КонецЕсли;
 КонецПроцедуры
Показать


2) Есть готовые решения для 1С для интеграции, если нужно большее.

3) Читать доки там же на официальном сайте и писать свое решение.

На практике чаще используют 1 и 2
most_fucking; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. papami 55 09.09.20 11:29 Сейчас в теме
Тут варианты:
1) Если только сделать вызов, т.е. на столе стоит телефон (или есть софтфон в компе) и из 1с послать команду набора номера, то достаточно вызова по http. Астер позвонит на внутренний и при поднятии трубки пойдет набор внешнего номера. Есть описание на официальном сайте.

Процедура НабратьНомер(НомерТелефона)
	 Линия=ПолучитьЛинию();	 
	 Если ЗначениеЗаполнено(Линия) Тогда
		 http=Новый HTTPСоединение("192.168.1.50",8088,,,,Ложь);
		 
		 httpPost=Новый HTTPЗапрос("ari/channels?context=from-internal&endpoint=PJSIP%2F"+Линия+"&extension="+НомерТелефон­а+"&api_key=12345>&callerId=""1C""<"+Линия+">");
	 
		 ОтветСервера=http.ОтправитьДляОбработки(httpPost);
		 Если ОтветСервера.КодСостояния=200 Тогда
			 
		 КонецЕсли;
	 КонецЕсли;
 КонецПроцедуры
Показать


2) Есть готовые решения для 1С для интеграции, если нужно большее.

3) Читать доки там же на официальном сайте и писать свое решение.

На практике чаще используют 1 и 2
most_fucking; +1 Ответить
3. most_fucking 15.09.20 17:51 Сейчас в теме
(2)


А как получить линию ? я так понимаю она в самом астериске задается?
4. papami 55 15.09.20 17:54 Сейчас в теме
(3)Ну это внутренний номер (сотрудника).
У меня ПолучитьЛинию() запрашивает его из контактных данных пользователя 1С.
5. most_fucking 15.09.20 17:56 Сейчас в теме
(4) то-есть по сути это номер пользователя, а настраиваются линии сами где? где их можно добавить?
6. most_fucking 15.09.20 17:57 Сейчас в теме
(4) при настройке астериска?
7. papami 55 15.09.20 20:27 Сейчас в теме
(6)да, кто станцию настраивает - добавляет.
8. most_fucking 16.09.20 18:17 Сейчас в теме
(7)
 
Соединение=Новый HTTPСоединение(IP,Port,,,,60); 

Запрос= Новый HTTPЗапрос("/asterisk/rawman?action=login&username="+СокрЛП(User)+"&secret="+СокрЛП(Password));
Ответ=Соединение.Получить(Запрос);
Если Ответ.КодСостояния=200 Тогда
	Cookie=Ответ.Заголовки.Получить("Set-Cookie");
	CookieDate=ТекущаяДата();
КонецЕсли; 
Сообщить(Ответ.ПолучитьТелоКакСтроку());
Показать


не отрабатывает, пишет Internet error: Timeout exceeded

в чем может быть проблема?

в логи почему-то пишет ошибка аутентификации "209"..не могу понять в какой момент он дает мне 209 линию, если я под логином и паролем вхожу
9. papami 55 16.09.20 21:12 Сейчас в теме
(8)
asterisk/rawman

209 - это не код ответа http?
вообще с какой целью этот вызов?
10. most_fucking 16.09.20 21:13 Сейчас в теме
(9) мне нужно установить соединение с астериском (проверить есть ли оно)
11. papami 55 17.09.20 09:03 Сейчас в теме
(10) мой код выше работает сразу. Другого ни чего не требуется.
Нужно попросить телефонистов включить ARI и дать реквизиты пользователя. По Вашему коду не подскажу, к сожалению. Не знаю.
12. most_fucking 17.09.20 19:08 Сейчас в теме
(2)
ari/channels?context=from-internal&endpoint=PJSIP%2F"+Линия+"&extension="+НомерТелефон­а+"&api_key=12345>&callerId=""1C""


а что значит - <wbr>а после номера телефона??
13. papami 55 18.09.20 08:27 Сейчас в теме
(12)
<wbr>

Это при вставке сюда добавилось. Должно быть просто
+НомерТелефона+
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот