Джим Меггелен - Asterisk™: будущее телефонии Второе издание
- Название:Asterisk™: будущее телефонии Второе издание
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Джим Меггелен - Asterisk™: будущее телефонии Второе издание краткое содержание
Asterisk™: будущее телефонии Второе издание - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
# Subscriber Information ^ User ID ^ 1000 (Информация об абоненте ^ ID пользователя ^ 1000).
# Subscriber Information ^ Password ^ [Оставьте незаполненным, если используете простую конфигурацию, описанную ранее в этой главе] (Информация об абоненте ^ Пароль ^ [Оставьте незаполненным, если используете простую конфигурацию, описанную ранее в этой главе]).
# Subscriber Information ^ Use Auth ID ^ yes (Информация об абоненте ^ Использовать ID авторизации ^ да).
# Subscriber Information ^ Auth ID ^ 1000 (Информация об абоненте ^ ID авторизации ^ 1000).
# Audio Configuration ^ Preferred Codec ^ G711u (Конфигурация аудио ^ Предпочтительный кодек ^ G711u).
# Audio Configuration ^ Use Pref Codec Only ^ no (Конфигурация аудио ^ Использовать только предпочтительный кодек ^ нет).
# Audio Configuration ^ Silence Supp Enable ^ no (Конфигурация аудио ^ Поддержка тишины доступна ^ нет).
# Audio Configuration ^ DTMF Tx Method ^ Auto (Конфигурация аудио ^ Метод DTMF Tx ^ Автоматически).
# Подтвердите все изменения
И это все! Теперь ваш телефон должен быть зарегистрирован в Asterisk. Вы узнаете об этом по кнопке-индикатору, расположенному рядом с жидкокристаллическим дисплеем, - он изменит цвет с оранжевого на зеленый.
Конфигурация диалплана для выполнения тестирования
Чтобы ваш телефон мог звонить на другие телефоны (или, для многоканального телефона, звонить самому себе), необходимо внести изменения в файл extensions.conf. Взяв за основу то, что было сделано в разделе «Настройка диалплана для выполнения тестовых вызовов», добавим следующие строки в контекст [internal]: exten => 1000,1,Verbose(1|Extension 1000) exten => 1000,n,Dial(SIP/1000,30) exten => 1000,n,Hangup()
Если имеется два телефона или сконфигурировано несколько линий, можно продублировать предыдущие настройки, заменив 1000 на другой добавочный номер.
Подключение к поставщику сервисов SIP
С появлением интернет-телефонии по всему миру возникло множество телефонных компаний, использующих интернет-технологии! Поэтому выбор у нас огромен. Многие из этих поставщиков сервисов обеспечивают возможность подключения частной Asterisk-системы к их сетям [66], а некоторые даже используют Asterisk сами!
Следующая конфигурация должна обеспечить подключение к поставщику сервисов интернет-телефонии (Internet Telephony Service Provider, ITSP) [67], хотя невозможно предугадать, какую конфигурацию потребует конкретный поставщик. В идеале поставщик сам предоставит вам настройки, которые необходимы для подключения вашей системы. Однако не все поддерживают Asterisk, поэтому мы собираемся предложить универсальную конфигурацию, на выполнение которой уйдет лишь несколько минут и которая должна помочь вам:
[мой_поставщик_услуг]
type=peer
host=10.251.55.100
fromuser=мой_уникальный_id
secret=мой_секретный пароль
context=incoming_calls
dtmfmode=rfc2833
disallow=all
allow=gsm
allow=ulaw
Конфигурация локального межсетевого экрана
Если межсетевой экран ip-таблиц используется на одном компьютере с сервером Asterisk, выполнив следующие команды, можно открыть порт 5060 для обмена сигналами по протоколу SIP и порты от 10000 до 20000 для RTP-трафика. Также диапазон RTP-портов можно сузить в файле rtp.conf, находящемся в папке /etc/asterisk. Замечательная книга по организации межсетевых экранов с помощью ip-таблиц - «Linux Firewalls» (издательство Novell Press) Стива Суэринга (Steve Suehring) и Роберта Циглера (Robert Ziegler).
# iptables -I RH-Firewall-1-INPUT -p udp --dport 5060 -j ACCEPT
# iptables -I RH-Firewall-1-INPUT -p udp --dport 10000:20000 -j ACCEPT
# service iptables save
Помните, что это откроет порты 5060 и от 10000 до 20000 для всего UDP-трафика из любого источника.
deny=0.0.0.0/0
permit=10.251.55.100/32
insecure=invite
Большинство приведенных настроек должны быть вам знакомы, но если нет, далее дается их краткое описание.
Задавая тип peer, мы указываем Asterisk, что при получении сообщения INVITE (Приглашение) (когда поставщик присылает вызов) нужно сравнивать не имя [мой поставщик сервисов], а IP-адрес, указанный в этом сообщении. Параметр host - это IP-адрес, на который мы будем направлять наши вызовы, и этот IP-адрес будет сопоставляться при получении вызова от поставщика.
Параметр fromuser (от пользователя) влияет на то, как структурировано наше сообщение INVITE при отправке вызова поставщику сервисов.
Сопоставление имени пользователя, а не IP-адреса
Некоторые поставщики услуг для отправки своих вызовов могут использовать вместо протокола Session Initiation Protocol множество IP-адресов, требуя от вас создания отдельной учетной записи типа peer для каждого IP-адреса. Если известны не все IP-адреса, вероятно, придется сравнивать имена пользователей. В этом случае потребуется лишь немного изменить формат описания поставщика сервисов. Самое большое изменение, на которое следует обратить внимание, - то, что вам понадобится задать [заголовок_поставщика_услуг] как имя пользователя, которому ваш поставщик сервисов собирается направлять вызовы. Также мы изменили тип peer (равноправный) на friend (дружественный), что с точки зрения Asterisk создает типы и user (пользователь), и peer, где тип user будет сравниваться раньше peer: [мой_уникальный_id] type=friend host=10.251.55.100 fromuser=мой_уникальный_id secreЛ=мой_секретный пароль context=incoming_calls dtmfmode=rfc2833 disallow=all allow=gsm allow=ulaw insecure=invite
Обратите внимание, что удалены параметры deny (отклонить) и permit (разрешить), поскольку IP-адреса, с которых будут поступать вызовы, могут быть неизвестны. Если вдруг эти адреса известны и вы по-прежнему хотите сравнивать их, параметры deny и permit для IP-адресов можно восстановить.
Если имя пользователя задано в параметре fromuser, при отправке вызова поставщику меняются поля From: (От:) и Contact: (Контакт:) сообщения INVITE. Этого может требовать сам поставщик, если он использует эти поля в процедуре аутентификации. То, где Asterisk меняет заголовок, можно увидеть в следующих двух фрагментах кода.
Без параметра fromuser:
Audio is at 66.135.99.122 port 18154
Adding codec 0x2 (gsm) to SDP
Adding codec 0x4 (ulaw) to SDP
Adding non-codec 0x1 (telephone-event) to SDP
Reliably Transmitting (no NAT) to 10.251.55.100:5060:
INVITE sip: 15195915119@10.251.55.100SIP/2.0
Via: SIP/2.0/UDP 66.135.99.122:5060;branch=z9hG4bK32469d35;rport
From: "asterisk" ;tag=as4975f3ff
To: 15195915119@10.251.55.100>
Contact: asterisk@66.135.99.122>
Call-ID: 58e3dfb2584930cd77fe989c00986584@66.135.99.122
CSeq: 102 INVITE
User-Agent: Asterisk PBX
Max-Forwards: 70
Date: Fri, 20 Apr 2007 14:59:24 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: 265
С параметром fromuser:
Audio is at 66.135.99.122 port 11700
Adding codec 0x2 (gsm) to SDP
Adding codec 0x4 (ulaw) to SDP
Adding non-codec 0x1 (telephone-event) to SDP
Reliably Transmitting (no NAT) to 10.251.55.100:5060:
INVITE sip: 15195915119@10.251.55.100SIP/2.0
Via: SIP/2.0/UDP 66.135.99.122:5060;branch=z9hG4bK635b0b1b;rport
From: "asterisk" ;tag=as3186c1ba
To: 15195915119@10.251.55.100>
Contact: _id@66.135.99.122>
Call-ID: 0c7ad6156f92e70b1fecde903550a12f@66.135.99.122
CSeq: 102 INVITE
User-Agent: Asterisk PBX
Max-Forwards: 70
Date: Fri, 20 Apr 2007 15:00:30 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: 265
Параметры deny и permit используются для отклонения всех входящих вызовов к этому участнику сети от всех IP-адресов, кроме заданного параметром permit. Это просто мера безопасности, которая обеспечивает поступление к данному участнику сети трафика только с ожидаемого IP-адреса.
Читать дальшеИнтервал:
Закладка: