Настройка IP-PBX

Описание развёртывания IP телефонии
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Настройка IP-PBX

Сообщение RomA »

В качестве телефонной станции будем использовать asterisk. Ставим

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

kineshma# cd /usr/ports/net/asterisk16
kineshma# make install clean
kineshma# cd /usr/ports/net/asterisk16-addons
kineshma# make install clean
Добавляем asterisk_enable="YES" в /etc/rc.conf что бы астериск стартовал вместе с системой и преступаем к настройкам.
Вписываем в /usr/local/etc/asterisk/sip.conf один тестовый телефончик.
В нашем случае телефоная емкость 24** потому мы используем номер телефона 2400 - вы тут подставляете свой телефонный номер. Так же в примере в качестве логина и пароля используется номер телефлона - вы можете использовать какие-то свои данные - использование номера телефона обусловлено исключительно легкостью запоминания такого логина и пароля.

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

[2400]
type=friend
host=dynamic
username=2400
secret=2400
nat=no
canreinvite=yes
context=office
callerid="T E S T" <2400>
disallow=g729
allow=all
allow=ulaw                                                                                                        
allow=alaw
Перезапускаем астериск, настраиваем телефон и пробуем что у нас получилось - телефон должен приконектиться к станции. Если все хорошо идем настраивать звонки. для этого редактируем файл /usr/local/etc/asterisk/extensions.conf
1) Секция default уже есть в конфиге - потому строчку надо вставить туда. Данное правило, которые мы вставляем влияет на входящие звонки - то есть когда звонок приходит с других АТС - он именно тут ищет туда он пришел или нет, и куда ему идти дальше.
2) Так же понимаем что если у нас телефонных номеров много, например если номера начинающиеся на 25** тоже принадлежат нашай АТС - ты суди вписываем второй строкой что-то типа exten => _25XX,1, Macro(stdexten,${EXTEN},SIP/${EXTEN})
3) В секции office мы должны прописать каждый телефон НАШЕЙ АТС который должно работать. То есть когда заводим новый номер телефона мы его прописываем и в sip.conf и тут. Таким образом если у нас появился новый телефон с номером 2401 - то в этой секции у нас появится строчка типа exten => 2401,1, Macro(stdexten,2401,SIP/2401)

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

[default]
exten => _24XX,1, Macro(stdexten,${EXTEN},SIP/${EXTEN})

[office]
exten => _X.,1,Dial(SIP/${EXTEN}@192.168.28.1,120)
exten => 2400,1, Macro(stdexten,2400,SIP/2400)
include => demo

[macro-stdexten]
exten = s,1,Set(__DYNAMIC_FEATURES=${FEATURES})
exten = s,2,GotoIf($[${FOLLOWME_${ARG1}} = 1]?5:3)
exten = s,3,Dial(${ARG2},${RINGTIME},${DIALOPTIONS})
exten = s,4,Goto(s-${DIALSTATUS},1)
exten = s,5,Macro(stdexten-followme,${ARG1},${ARG2})
exten = s-NOANSWER,1,Voicemail(${ARG1},u)
exten = s-NOANSWER,2,Goto(default,s,1)
exten = s-BUSY,1,Voicemail(${ARG1},b)
exten = s-BUSY,2,Goto(default,s,1)
exten = _s-.,1,Goto(s-NOANSWER,1)
exten = a,1,VoicemailMain(${ARG1})

[macro-stdexten-followme]
exten = s,1,Dial(${ARG2},${RINGTIME},${DIALOPTIONS})
exten = s,2,Followme(${ARG1},${FOLLOWMEOPTIONS})
exten = s,3,Voicemail(${ARG1},u)
exten = s-NOANSWER,1,Voicemail(${ARG1},u)
exten = s-BUSY,1,Voicemail(${ARG1},b)
exten = s-BUSY,2,Goto(default,s,1)
exten = _s-.,1,Goto(s-NOANSWER,1)
exten = a,1,VoicemailMain(${ARG1})
Запускаем АТС стандартно /usr/local/etc/rc.d/asterisk start - теперь мы можем набрать номер 2 и прослушать как нам будет хорошо жить с новыми технологиями. В принципе на этом грубая настройка АТС закончилась. Звонки ходят во все стороны и вообще все очень замечательно.

Лирические отступления
1) Мы тут не используем платные кодеки G729 и G723 - потому что под Asterisk6 на FreeBSD8 сборки на сайте http://asterisk.hosting.lv/ нету - найдем - поставим :-)
2) По мимо железной перегрузки АТС (/usr/local/etc/rc.d/asterisk stop и /usr/local/etc/rc.d/asterisk start) можно еще перечитывать определеные файлы на лету командами, например module reload extconfig из консоли самого астериска
3) У астериска есть свой командный интерфейс, где можно смотреть инфу нужную - войти в неё можно с командной строки сервера, набрав asterisk -r
4) В консоле астериска можно посмотреть что происходит на АТС, включил дебаг командой core set verbose 9
5) Иногда бывает что в консоле астериск громко ругается на тему

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

[Apr 13 10:05:03] WARNING[27558]: db.c:57 dbinit: Unable to open Asterisk database '/var/db/asterisk/astdb': No such file or directory
- в этом случае надо просто создать этот каталог, куда он хочет чего-то писать командой mkdir /var/db/asterisk
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Настройка "секретарского" номера

Сообщение RomA »

По мимо обычных телефонных аппаратов, наши секретари хотят видеть какая линия сейчас свободна, а какая занята. Это есть во всех старых АТС, и это можно организовать и в нашей цифровой. В качестве телефонного аппатара секретаря используем Grandstream GXP2000
Итак, открываем sip.conf и в каждый телефонный номер добавляем следующее

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

call-limit=100                                                                                                    
notifyringing=yes                                                                                                 
limitonpeers=yes 
А в самом секретарском номере меняем тип на type=peer
Таким образом, обычный телефонный номер стал выглядеть так

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

[2400]                                                                                                            
type=friend                                                                                                       
host=dynamic                                                                                                      
username=2400                                                                                                     
secret=2400                                                                                                       
nat=no                                                                                                            
canreinvite=yes                                                                                                   
context=office                                                                                                    
callerid="Имя Фамилия" <2400>                                                                                                
call-limit=100                                                                                                    
notifyringing=yes                                                                                                 
limitonpeers=yes                                                                                                  
disallow=g729                                                                                                     
allow=all                                                                                                         
allow=ulaw                                                                                                        
allow=alaw 
А секретарский вот так

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

[2404]                                                                                                            
type=peer                                                                                                         
host=dynamic                                                                                                      
username=2404                                                                                                     
secret=2404                                                                                                       
nat=no                                                                                                            
canreinvite=yes                                                                                                   
context=office                                                                                                    
callerid="Secretary" <2404>                                                                                       
call-limit=100                                                                                                    
notifyringing=yes                                                                                                 
limitonpeers=yes                                                                                                  
disallow=g729                                                                                                     
allow=all                                                                                                         
allow=ulaw                                                                                                        
allow=alaw 
Сохраняем и идем в файл extensions.conf где перед каждым номером добавляем следующее

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

exten => 2400,hint,SIP/2400
после чего эти строки в конфиге расположились вот так

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

exten => 2400,hint,SIP/2400                               
exten => 2400,1, Macro(stdexten,2400,SIP/2400)            
exten => 2401,hint,SIP/2401
exten => 2401,1, Macro(stdexten,2401,SIP/2401)
Сохраняем. Перезапускаем АТС. Настройка станции завершена. Переходим к настройке телефона секретаря (телефоны пользователей трогать не надо)
Настройки телефона, вкладка "BASIC SETTINGS", Multi Purpose Key 1 - тут
Key Mode: Busy Lamp Filed (BLF)
Name: Имя чей телефон
UserID: 2400 это номер телефона который мониторим
Сохраняемся и перезапускаем телефон. Лампочка на кнопочке должна засветиться зелененьким. Значит все ок - номер стал на контроль.
Ну а дальше все понятно - если номер занят - он моргает, если на него звонят - он опять моргает, если свободен - зеленый
Последний раз редактировалось RomA 14 фев 2010, 10:56, всего редактировалось 1 раз.
Scorp
Сообщения: 22
Зарегистрирован: 16 янв 2009, 14:19

Re: Настройка IP-PBX

Сообщение Scorp »

Инструкция для пользователей телефона Grandstream 2000 на русском языке
Вложения
Инструкция по Grandstream 2000.doc
(103.5 КБ) 674 скачивания
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Всякие мелочи

Сообщение RomA »

Какие то короткие настройки...
1) Если нам надо, что бы одновременно звонили несколько телефонных аппаратов - например стационарный телефон и радиотрубка, то в файле extensions.conf этот номер должен быть настроен так

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

exten => 5004,1, Macro(stdexten,5004,SIP/5004&SIP/5006)
то есть перечисляем через & те телефонные номера, прописаные в sip.conf которые должны звонить одновременно

2) Перехват вызовов - выделяем телефоны которые должны перехватываться друг с другом в отдельную группу, в начале которой указываем как будем перехватывать exten => *7,1,PickUP() и не забываем включить туда инклуды для внешних звонков, если они нужны!!! - таким образом конфиг extensions.conf для перехвата 2х телефонов меж собой будет выглядеть так

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

[otdel1]
exten => *7,1,PickUP()
exten => 5000,1, Macro(stdexten,5000,SIP/5000)
exten => 5001,1, Macro(stdexten,5001,SIP/5001)
А в файл sip.conf в каждый номер телефона, который должен меж собой перехватываться добавляем pickupgroup=1 и callgroup=1
Комбинация клавиш для перехвата определена в файле features.conf и по умолчанию она *8 но на всех старых серьезных АТС эта комбанация *7 - потому мы определяем это сочетание, что бы на всех заводах было одинаково

4) Переадресация звонка на мобилку делается все в том же extensions.conf делаем такую настройку

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

[b]exten => 5555,1, Dial(SIP/989066012244@192.168.28.1,120)
Следует учесть что таких строк надо прописать несколько - одну в [default] для звонков с других предприятий и одну в ту сакцию, где уже был прописан этот телефонный номер (ту мы временно закоментарили)

5) Иногда при настройке АТС надо записать какую то фразу, скажел для меню - возиться с этим всем долго, а хочется просто проверить - тут поможет вот такая конфигурация включеная в extensions.conf

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

exten => 200,1,Wait(2)                                                                    
exten => 200,2,Record(/tmp/asterisk-recording:gsm)                                        
exten => 200,3,Wait(2)                                                                    
exten => 200,4,Playback(/tmp/asterisk-recording)                                          
exten => 200,5,Wait(2)                                                                    
exten => 200,6,Hangup                                                                     
exten => 201,1,Wait(2)                                                                    
exten => 201,2,Playback(/tmp/asterisk-recording)                                          
exten => 201,3,Wait(2)                                                                    
exten => 201,4,Hangup 
Таким образом, позвонив на номер 200 мы услышим звуковой сигнал, после котоого надо продиктовать наше сообщение и нажать #, после чего опять сигнал и мы себя услышим. А позвонив по номеру 201 можно прослушать что получилось

6) Когда к нам идет входящий вызов с межгорода, но внутри одной страны, то номер на телефоне определяется без кода страны - то есть мы видим 10 цыфр, а не 11 как бы хотелось и когда мы перезваниваем по определившемуся номеру, то никуда не дозваниваемся. Это легко исправить, включив в файл extensions.conf слудующее правило

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

exten => _XXXXXXXXXX,1,Dial(H323/8${EXTEN}@10.200.100.2,120)
тут мы видем что пользователь вместо 11 набрал 10 цыфр - мы доставляем 8 автоматом и отправляем провайдеру уже 11 - вызов совершился

7) На АТС есть такая услуга, как сервер точного времени - у нас она тоже есть :-) В файле extensions.conf прописываем следующее

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

exten => 5688,1,Answer
exten => 5688,2,SayUnixTime(,,pHMAdBY)
exten => 5688,3,WaitMusicOnHold(10)
exten => 5688,4,Goto(5688,1)    
Ну как вариант :-)

8) Конференции - это когда говорят сразу несколько человек. Для начало в системе надо подгрузить следующие модули ядра

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

voip# kldload /usr/local/lib/zaptel/zaptel.ko
voip# kldload /usr/local/lib/ztdummy.ko
и вообще пока не забыли прописываем его в автозагрузку в фале /boot/loader.conf
Теперь приступаем к настройкам астериска. в файле meetme.conf вписываем номер по которому надо будет позвонить, что бы попасть в конференцию - номер, пароль(если надо), пароль_админи(если надо)

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

conf = 5687,,
Теперь в файле extensions.conf озвучиваем этот номер

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

exten = 5687,1,MeetMe(${EXTEN}|M)
Перешружаем АТС и пользуемся :-)
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Настройка голосовой почты

Сообщение RomA »

Так как часто езжу в командировки, то не всегда могу услышать свой телефон, а иногда там попадаются нужные номера... что бы всегда быть вкурсе событий решил разобраться с настройкой автоответчика...
Оказалось что в астериске он уже настроен и надо только ввести свои данные. итак, приступим - идем в файл voicemail.conf и редактируем под себя - я внес следующие изменения - в секции general сделал общие изменения

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

format = wav49|gsm|wav                                              
serveremail = asterisk                                              
attach = yes 
sendvoicemail = yes  ; Context to Send voicemail from [option 5 from the advanced menu]                           
emailonly = no                                                                                                    
emailsubject = пё п╡п╟я│ п©я─п╬п©я┐я┴п╣п╫п╬п╣ я│п╬п╬п╠я┴п╣п╫п╦п╣ (п╡я│п╣пЁп╬ ${VM_MSGNUM})                        
emailbody = \t ${VM_DATE} п╫п╟ я┌п╣п╩п╣я└п╬п╫п╫я▀п╧ п╫п╬п╪п╣я─ ${VM_MAILBOX} п©п╬я│я┌я┐п©п╦п╩ п╥п╡п╬п╫п╬п╨ п╬я┌ ${VM_CALLERID}, п╫п╟ п╨п╬я┌п╬я─я▀п╧  п▓я▀ п╫п╣ я│п╪п╬пЁп╩п╦ п╬я┌п╡п╣я┌п╦я┌я▄. п≈п╡п╬п╫п╦п╡я┬п╦п╧ п╬я│я┌п╟п╡п╦п╩ пЁп╬п╩п╬я│п╬п╡п╬п╣ я│п╬п╬п╠я┴п╣п╫п╦п╣ п╫п╟ п╟п╡я┌п╬п╬я┌п╡п╣я┌я┤п╦п╨п╣ п╢п╩п╦я┌п╣п╩я▄п╫п╬я│я┌я▄я▌ ${VM_DUR} я│п╣п╨., п╨п╬я┌п╬я─п╬п╣ п╫п╟я┘п╬п╢п╦я┌я│я▐ п╡ п©я─п╦п╨я─п╣п©п╩я▒п╫п╫п╬п╪ я└п╟п╧п╩п╣.\n\t п▓я│п╣пЁп╬ п╫п╟ п╟п╡я┌п╬п╬я┌п╡п╣я┌я┤п╦п╨п╣ п╢п╩я▐ ${VM_NAME} я┘я─п╟п╫п╦я┌я│я▐ ${VM_MSGNUM} я│п╬п╬п╠я┴п╣п╫п╦п╧, п╨п╬я┌п╬я─я▀п╣ п╢п╬п╩п╤п╫я▀ п╠я▀я┌я▄ п©я─п╬я│п╩я┐я┬п╟п╫я▀ п╦ я┐п╢п╟п╩п╣п╫я▀\n\n====================  + + +   T R A N S L I T   + + +  ====================\n\t ${VM_DATE} na telefon ${VM_MAILBOX} postupil zvonok ot ${VM_CALLERID}, na kotoruy  Vuy ne smogli otvetit. Vam ostavleno soobchenie dlitel'nost'uy ${VM_DUR} min.\n\t Vsego na nomere ${VM_NAME} hranitsya ${VM_MSGNUM} soobcheniy, kotoruy vy dolgny proslushat' i udalit\n====================  + + +   T R A N S L I T   + + +  ====================                       
а в секции default прописал свои настройки 0000 - это пароль на мой автоответчик

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

5555 => 0000,Example Mailbox,roman@stniva.ru,,attach=yes
Перегружаем АТС и пробуем позвонить по номеру 8500 - у нас должны спросить телефон (5555) и пароль (0000) - мы в автоответчике - внимательно слушаем все что говорят - там все хорошо рассказано - подно прослушать новые, можно удалить, можно восстановить - короче много чего можно делать - например записать собственное сообщение для приветствия.
Но, блин, номер 8500 не доступен с других организаций ((( не мудрствуя лекаво просто переназначаю в файле extensions.conf в секции default какой нить свой номер

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

exten => 5553,1,Dial(SIP/8500,25,120)

теперь я могу позвонить по номеру 5553, находясь на другом предприятии и попасть в свой почтовый ящик

Но... опять косяк - я вечером в гостинице, и телефона корпоративного под рукой нет - тут есть 2 варианта - один это взять городской номер и переназначить его на 8500 своей АТС и звонить с мобилки на него, но так дорого, а вот вайфай как правило есть всегда по более низкой цене - для этого в самом начале мы включили уведомление на почту. Я просто проверяю свой почтовый ящик и прослушиваю присоединенный wav файл с голосовым сообщением для меня...

Ну вот вроде и все... Пользуюсь уже года 2 - весьма удобно, даже когда сижу в офисе - потому что автоответчик включается не только тогда, когда я не могу ответить по телефону, но так же и тогда, когда мой телефон занят - например я поднял трубку набрать кому то, и ровно в этот момент кто-то пытается дозвонить до меня - мой телефон занят и он сразу уходит на автоответчик - и тут же у меня на экране выскакивает уведомление о новом письме :-)

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

Хочется напомнить, что перенаправление на войсмайл пойдет благодаря нашей следующей конструкции - это для тех, кто настраивал свою АТС не по этим статьям

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

[office]
exten => 1800,1, Macro(stdexten,1800,SIP/1800)

[macro-stdexten]
exten = s,1,Set(__DYNAMIC_FEATURES=${FEATURES})
exten = s,2,GotoIf($[${FOLLOWME_${ARG1}} = 1]?5:3)
exten = s,3,Dial(${ARG2},${RINGTIME},${DIALOPTIONS})
exten = s,4,Goto(s-${DIALSTATUS},1)                 
exten = s,5,Macro(stdexten-followme,${ARG1},${ARG2})
exten = s-NOANSWER,1,Voicemail(${ARG1},u)           
exten = s-NOANSWER,2,Goto(default,s,1)              
exten = s-BUSY,1,Voicemail(${ARG1},b)               
exten = s-BUSY,2,Goto(default,s,1)                  
exten = _s-.,1,Goto(s-NOANSWER,1)                   
exten = a,1,VoicemailMain(${ARG1})                  

[macro-stdexten-followme]
exten = s,1,Dial(${ARG2},${RINGTIME},${DIALOPTIONS})
exten = s,2,Followme(${ARG1},${FOLLOWMEOPTIONS})    
exten = s,3,Voicemail(${ARG1},u)                    
exten = s-NOANSWER,1,Voicemail(${ARG1},u)           
exten = s-BUSY,1,Voicemail(${ARG1},b)               
exten = s-BUSY,2,Goto(default,s,1)                  
exten = _s-.,1,Goto(s-NOANSWER,1)                   
exten = a,1,VoicemailMain(${ARG1}) 
Ну а сам войсмайл находится выше в конциге - главное направление - дальше сами )))
Вложения
3.jpg
3.jpg (108.1 КБ) 20438 просмотров
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Детализация звонков

Сообщение RomA »

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

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

CREATE DATABASE asterisk;

GRANT INSERT
ON asterisk.*
TO asterisk@localhost
IDENTIFIED BY 'passdb';

USE asterisk;
CREATE TABLE `cdr` (
`calldate` datetime NOT NULL default '0000-00-00 00:00:00',
`clid` varchar(80) NOT NULL default '',
`src` varchar(80) NOT NULL default '',
`dst` varchar(80) NOT NULL default '',
`dcontext` varchar(80) NOT NULL default '',
`channel` varchar(80) NOT NULL default '',
`dstchannel` varchar(80) NOT NULL default '',
`lastapp` varchar(80) NOT NULL default '',
`lastdata` varchar(80) NOT NULL default '',
`duration` int(11) NOT NULL default '0',
`billsec` int(11) NOT NULL default '0',
`disposition` varchar(45) NOT NULL default '',
`amaflags` int(11) NOT NULL default '0',
`accountcode` varchar(20) NOT NULL default '',
`userfield` varchar(255) NOT NULL default ''
);

ALTER TABLE `cdr` ADD INDEX ( `calldate` );
ALTER TABLE `cdr` ADD INDEX ( `dst` );
ALTER TABLE `cdr` ADD INDEX ( `accountcode` );
Начнем с астериска - в файле cdr_mysql.conf прописываем базу данных

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

[global]
hostname=192.168.1.7
dbname=asterisk
table=cdr
password=passdb
user=asterisk
port=3306
Перезапустили АТС и забыли - дальше она сама, а мы идем настраивать все остальное. Для начала поставим вебморду

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

cd /usr/ports/www/asterisk-stat/
make install clean
Для настройки нам прийдется отредактировать файл lib/defines.php

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

define ("WEBROOT", "http://admin.stniva.ru/asterisk/");
define ("FSROOT", "/usr/home/www/admin/asterisk/");    

define ("LIBDIR", FSROOT."lib/");

define ("HOST", "localhost");
define ("PORT", "3306");     
define ("USER", "asterisk");     
define ("PASS", "passdb");   
define ("DBNAME", "asterisk");
define ("DB_TYPE", "mysql"); // mysql or postgres

define ("DB_TABLENAME", "cdr");
теперь идем по адресу http://ваш.сервер.ру/asterisk/cdr.php и наслаждаемся )
На официальном сайте можно посмотреть скриншоты http://areski.net/asterisk-stat-v2/screenshot/ а так же скачать дистрибутив http://areski.net/asterisk-stat-v2/aste ... 0_1.tar.gz
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Видеовызовы

Сообщение RomA »

Для работы видео звонков через нашу телефонию нам надо сделать следующее. В файле sip.conf в секции general

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

videosupport=yes
а в телефонный номер в список кодеков добавляем

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

allow=h264
таким образом телефонный номер будет выглядеть как

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

[5555] ; Video                                                                                             
type=friend                                                                                                       
host=dynamic                                                                                                      
username=5555                                                                                                     
secret=5555                                                                                                       
nat=no                                                                                                            
canreinvite=yes
context=office
callerid="Roman Perepechaev" <5555>
disallow=all
allow=alaw                                                                                                        
allow=ulaw                                                                                                        
allow=h264 
Можно еще включить кодек allow=h263 - но там видео значительно хуже.
Перегружаем астериск - по настройке АТС все - Осталось настроить сам телефон и можно будет совершать видеовызовы.
Scorp
Сообщения: 22
Зарегистрирован: 16 янв 2009, 14:19

Re: Настройка IP-PBX

Сообщение Scorp »

1) Если нам надо, что бы одновременно звонили несколько телефонных аппаратов - например стационарный телефон и радиотрубка, то в файле extensions.conf этот номер должен быть настроен так

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

exten => 5004,1, Macro(stdexten,5004,SIP/5004&SIP/5006)
то есть перечисляем через & те телефонные номера, прописаные в sip.conf которые должны звонить одновременно
4) Переадресация звонка на мобилку делается все в том же extensions.conf делаем такую настройку

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

exten => 5555,1, Dial(SIP/989066012244@192.168.28.1,120)
Следует учесть что таких строк надо прописать несколько - одну в [default] для звонков с других предприятий и одну в ту сакцию, где уже был прописан этот телефонный номер (ту мы временно закоментарили)
для того что бы звонок приходил и на сип телефон и на сотовый у себя я сделал такое правило

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

exten => 2400,1, Macro(stdexten,2400,SIP/2400&SIP/989621590414@192.168.28.1,120)
при этом позвонив на 2400 - звонит сип телефон и примерно через 2 гудка начинает звонить сотовый, какой телефон первой взял - тот и примет звонок, второй - отключается
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Установка платных кодеков G723 и G729

Сообщение RomA »

Помимо бесплатных кодеков, существуют еще и платные. Почему так происходит мне совершенно не понятно, но многое оборудование работает на этих платных кодеках, а в бесплатной версии астериска их нет... С этим мы и будем бороться...
Итак - для начала мы имеем:

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

Connected to Asterisk 1.6.0.21 currently running on inet (pid = 10322)
inet*CLI> core show translation
         Translation times between formats (in microseconds) for one second of data
          Source Format (Rows) Destination Format (Columns)

           g723   gsm  ulaw  alaw g726aal2 adpcm  slin lpc10  g729 speex  ilbc  g726  g722 slin16
     g723     -     -     -     -        -     -     -     -     -     -     -     -     -      -
      gsm     -     -   484   492      999   584   467  1057     -  5055  7906  3369   916   1758
     ulaw     -   961     -    21      552   137    20   610     -  4608  7459  2922   469   1311
     alaw     -   969    25     -      560   145    28   618     -  4616  7467  2930   477   1319
 g726aal2     -  1437   513   521        -   613   496  1086     -  5084  7935  3398   945   1787
    adpcm     -  1017    93   101      608     -    76   666     -  4664  7515  2978   525   1367
     slin     -   941    17    25      532   117     -   590     -  4588  7439  2902   449   1291
    lpc10     -  1187   263   271      778   363   246     -     -  4834  7685  3148   695   1537
     g729     -     -     -     -        -     -     -     -     -     -     -     -     -      -
    speex     -  1234   310   318      825   410   293   883     -     -  7732  3195   742   1584
     ilbc     -  1792   868   876     1383   968   851  1441     -  5439     -  3753  1300   2142
     g726     -  1659   735   743     1250   835   718  1308     -  5306  8157     -  1167   2009
     g722     -  1624   700   708     1215   800   683  1273     -  5271  8122  3585     -    842
   slin16     -  2580  1656  1664     2171  1756  1639  2229     -  6227  9078  4541   956      -
inet*CLI> 
Как видите напротив g723 и g729 стоят прочерки... Давайте их установим

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

inet# cd /usr/local/lib/asterisk/modules
inet# setenv http_proxy http://freebsd:pass@192.168.1.7:3128/
inet# fetch http://dev.net1.cc/g72x-codecs-for-asterisk/asterisk16-fbsd80-x64/codec_g723_x64_core2.so
codec_g723_x64_core2.so                       100% of 1521 kB   70 kBps 00m00s
inet# fetch http://dev.net1.cc/g72x-codecs-for-asterisk/asterisk16-fbsd80-x64/codec_g729_x64_core2.so
codec_g729_x64_core2.so
Теперь перегружаем астериск

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

inet# /usr/local/etc/rc.d/asterisk stop
Stopping asterisk.
inet# /usr/local/etc/rc.d/asterisk start
Starting asterisk.
и смотрим что у нас получилось

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

Connected to Asterisk 1.6.0.21 currently running on inet (pid = 11124)
inet*CLI> core show translation
         Translation times between formats (in microseconds) for one second of data
          Source Format (Rows) Destination Format (Columns)

           g723   gsm  ulaw  alaw g726aal2 adpcm  slin lpc10  g729 speex  ilbc  g726  g722 slin16
     g723     -   882   250   249      641   292   238  1203  4885  5411  7471   822   442    827
      gsm  4347     -   332   331      723   374   320  1285  4967  5493  7553   904   524    909
     ulaw  4041   658     -    10      417    68    14   979  4661  5187  7247   598   218    603
     alaw  4040   657    25     -      416    67    13   978  4660  5186  7246   597   217    602
 g726aal2  4366   983   351   350        -   393   339  1304  4986  5512  7572   923   543    928
    adpcm  4063   680    48    47      439     -    36  1001  4683  5209  7269   620   240    625
     slin  4027   644    12    11      403    54     -   965  4647  5173  7233   584   204    589
    lpc10  7804  4421  3789  3788     4180  3831  3777     -  8424  8950 11010  4361  3981   4366
     g729  4929  1546   914   913     1305   956   902  1867     -  6075  8135  1486  1106   1491
    speex  4504  1121   489   488      880   531   477  1442  5124     -  7710  1061   681   1066
     ilbc  4629  1246   614   613     1005   656   602  1567  5249  5775     -  1186   806   1191
     g726  4354   971   339   338      730   381   327  1292  4974  5500  7560     -   531    916
     g722  4337   954   322   321      713   364   310  1275  4957  5483  7543   894     -    385
   slin16  4750  1367   735   734     1126   777   723  1688  5370  5896  7956  1307   413      -
inet*CLI> 
Как видим кодеки подгрузились и все стало хорошо... тперь нам надо разрешить их использование в конфигах астериска... ну а поскольку теперь у нас есть все кодеки, которые могут быть - разрешаем вообще все и не паримся )))

PS: Самое большое собрание кодеков под разные оси и астериски на сегодняшний день находится тут http://asterisk.hosting.lv/
Scorp
Сообщения: 22
Зарегистрирован: 16 янв 2009, 14:19

Описание номеров с помощью шаблонов

Сообщение Scorp »

Обычно мы каждый телефон описываем со всеми параметрами, при этом конфиг получается очень большой и много однотипных записей. Чтобы уменьшить эту "однотипность" в астериске есть шаблоны, т.е. то что у нас повторяется во всех номерах мы забиваем в шаблон, а потом его используем в номерах, выглядит это так:

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

[sets](!)
type=friend
host=dynamic
nat=no
canreinvite=yes
context=office
call-limit=100
notifyringing=yes
limitonpeers=yes
callgroup=1
pickupgroup=1
allow=alaw

[2400](sets)
username=2400
secret=2400
callerid="Haritonov E.V." <2400>
у себя это опробовал, работает отлично!
Ответить