Asterisk™: будущее телефонии Второе издание
Шрифт:
trunkfreq используется для управления частотой отправки сообщений по магистральному каналу. Задается в миллисекундах. Сообщения отправляются вместе с командой trunk=yes: trunkfreq=20 trunktimestamps (канал)
Определяет, должна ли Asterisk посылать временные метки для каждого отдельного подкадра, входящего в состав магистрального кадра (trunk frame). При передаче этих временных меток немного увеличивается требуемая полоса пропускания (менее чем на 1 Кбит/с
Извлечение информации диалплана с удаленного сервера Asterisk
Asterisk может извлекать информацию диалплана с другого сервера Asterisk,
Если для глобальной опции iaxcompat задано значение yes, при осуществлении поиска switch Asterisk будет порождать отдельный поток. Использование этого потока позволяет драйверу IAX-канала продолжать выполнение других процессов, пока поток ожидает ответа. Эта опция обусловливает небольшие потери производительности: iaxcompat=yes|no
на вызов), но они гарантируют надежную передачу временных меток кадров из конца в конец. Если оба конца всех ваших магистральных каналов направляются прямо в TDM и значение trunkfreq равно длине кадра используемого кодека, вероятно, можно опустить этот параметр. Получатель также должен поддерживать эту функцию, хотя необязательно, чтобы она была у него активирована: trunktimestamps=yes|no
Регистрация на других серверах с помощью выражений register
Выражение регистрации register => используется для регистрации вашего сервера Asterisk на удаленном сервере. Это позволяет удаленному концу соединения знать ваше местонахождение на случай, если вы сконфигурированы с динамическим IP-адресом. Заметьте, что выражения register используются, только если вы сконфигурированы на удаленном конце как равноправный участник сети и когда host=dynamic. Основной формат выражения register:
register => имяпользователя: пароль@удаленный-хост пароль является необязательным параметром (если не сконфигурирован в удаленной системе).
В качестве альтернативы можно задать RSA-ключ, заключив его имя [142] в квадратные скобки ([]):
register => имяпользователя:[имя-rsa-ключа]@удаленный-хост По умолчанию запросы register будут посылаться через порт 4569. Их можно направить на другой порт, явно задав его:
142
RSA-ключи Asterisk обычно располагаются в папке /var/lib/asterisk/keys/. С помощью сценария astkeygen можно генерировать собственные ключи.
register => имяпользователя:пароль@удаленный-хост:1234
Описания IAX-каналов
Теперь, когда определены общие настройки, можно приступать к описанию каналов. Если предполагается принимать анонимные IAX-вы- зовы, рекомендуется создать гостевой канал. Это очень распространенный способ связи в сообществе Asterisk. Прежде чем решить, что это не для вас, подумайте о том, что,
Несомненно, спамеры найдут способ доступа к этим адресам, но в ближайшем обозримом будущем это не представляет проблемы. В долгосрочной перспективе, вероятно, будет использоваться DUNDi (больше информации об этом вы найдете в главе 14).
Если требуется принимать вызовы из сети Free World Dialup, в Asterisk есть предопределенный защитный ключ, который гарантирует невозможность для анонимных соединений сымитировать звонок Free World Dialup. Для этого потребуется настроить канал iaxfwd:
[iaxfwd] type=user context=incoming auth=rsa
inkeys=freeworlddialup Если имеются ресурсы, опубликованные в сети DUNDi, в файле iax. conf должен быть описан соответствующий пользователь:
[dundi] type=user
dbsecret=dundi/secret context=dundi-incoming
Если имеются устройства, работающие по протоколу IAX (такие, как IAXy), или IAX-пользователи на удаленном сервере, возможно, вы захотите обеспечить их собственным описанием пользователя, посредством которого они будут соединяться с системой.
Допустим, на удаленном сервере имеется пользователь, для которого решено определить IAX-канал типа user. Назовем этого гипотетического пользователя sushi. Описание этого канала может быть примерно таким:
[sushi] type=user
context=local_users
auth=md5,plaintext,rsa
secret=wasabi
transfer=no
jitterbuffer=yes
callerid="Happy Tempura" <(800) 555-1234>
accountcode=seaweed
deny=0.0.0.0/0.0.0.0
permit=192.168.1.100/255.255.255.0
language=en
Входящие звонки от этого пользователя будут поступать в контекст local_users и передавать системе Caller ID (ID звонящего) Happy Tempura <(800) 555-1234>. Система ожидает от этого пользователя аутентификации с использованием простого текстового пароля или алгоритмов MD5 и RSA, поскольку предоставлен пароль wasabi и звонок поступил с IP- адреса 192.168.1.100. Всем звонкам, поступившим по этому каналу,
Аутентификация по протоколу IAX
IAX предоставляет механизмы аутентификации для обеспечения достаточного уровня безопасности между конечными точками. Это не означает, что аудиоинформацию нельзя захватить и декодировать, но свидетельствует о том, что можно более тщательно управлять правами доступа к вашей системе. В IAX-ка- налах поддерживается три уровня безопасности. Опция auth определяет, какой метод аутентификации используется в канале: plaintext, md5 или rsa.
Параметр plaintext в IAX обеспечивает очень низкий уровень защиты. Хотя он разрешает соединение с каналом только при условии введения правильного пароля, но тот факт, что пароль хранится в файле iax.conf как простой текст и передается и принимается в таком же незашифрованном виде, делает этот метод аутентификации очень ненадежным.