Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Обзор конфигурации Kamailio в Kazoo
Search
IqTek
October 01, 2019
Programming
220
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Обзор конфигурации Kamailio в Kazoo
IqTek
October 01, 2019
More Decks by IqTek
See All by IqTek
Обзор понятий и технологий VoIP
iqtek96
0
92
Техническая и программная сторона VoIP
iqtek96
0
140
WebRTC
iqtek96
1
140
2._Разработка_с_Asterisk.pdf
iqtek96
0
130
ML в VoIP
iqtek96
0
150
Ретроспектива одного проекта - IqDialer
iqtek96
0
180
FMC - интегрируем офисную телефонию с GSM сетью
iqtek96
0
84
Что нового в VoIP в 2019
iqtek96
0
74
Kamailio как proxy для WebRTC
iqtek96
0
390
Other Decks in Programming
See All in Programming
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
1
2.2k
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
7
1.7k
AWSに止められる覚悟してますか?
morizo_1984
2
510
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
440
mrbgem 三角測量 開発
ogom
0
190
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
300
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
440
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
110
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
250
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
450
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
140
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.4k
Featured
See All Featured
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
480
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
How to build a perfect <img>
jonoalderson
1
6.1k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
66k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Being A Developer After 40
akosma
91
590k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Google's AI Overviews - The New Search
badams
0
1.6k
Transcript
Конференция Kamailio 2019 Обзор конфигурации Kamailio в Kazoo Гончаровский Игорь
Конференция Kamailio 2019 О себе • Работа с VoIP c
2005 года • Преимущественно Asterisk • Kamailio для решения побочных задач • Эксплуатация Kazoo c 2014 года
Конференция Kamailio 2019 Kazoo • OpenSource проект • Ранее использовал
opensips • Масштабируемая телефонная платформа • Ключевые компоненты ◦ Kamailio ◦ FreeSwitch ◦ RabbitMQ ◦ Erlang apps ◦ Haproxy ◦ CouchDB
Конференция Kamailio 2019
Конференция Kamailio 2019 Kamailio in Kazoo • SIP SBC •
Шлюз для Websocket • Сервер приложений • Сервисы, называемые ‘ролями’ • yum install -y kazoo-kamailio
Конференция Kamailio 2019 Модуль kamailio • Модуль db_kazoo • Конвертирует
запросы на запись и чтение • Обменивается AMQP сообщения (RabbitMQ) • В mainstream kamailio c 4.2
Конференция Kamailio 2019 int db_kazoo_bind_api(db_func_t *dbb) { dbb->init = db_kazoo_init;
dbb->use_table = db_kazoo_use_table; dbb->close = db_kazoo_close; dbb->query = db_kazoo_query; dbb->free_result = db_kazoo_free_result; dbb->insert = db_kazoo_insert; dbb->replace = db_kazoo_replace; dbb->insert_update = db_kazoo_insert_update; dbb->delete = db_kazoo_delete; dbb->update = db_kazoo_update; dbb->raw_query = db_kazoo_raw_query; dbb->cap = DB_CAP_ALL; return 0; }
Конференция Kamailio 2019 Модуль kamailio if(kazoo_query("callevt", $var(routing_key), $var(payload_request))) { $du
= $(kzR{kz.json,Channels[0].switch_url}); } event_route[kazoo:consumer-event-presence-mwi-update] { if($xavp(watchers=>message-summary) > 0) { kazoo_pua_publish_mwi($kzE); pres_refresh_watchers("$(kzE{kz.json,From})", "message-summary", 1); } }
Конференция Kamailio 2019 Функции и переменные • kazoo_publish(exchange, routing_key, json_payload)
• kazoo_query(exchange, routing_key, json_payload [, target_var]) • kazoo_subscribe(exchange, exchange_type, queue, routing_key) • kazoo_subscribe(json_description) • kazoo_pua_publish(json_payload) • kazoo_encode(to_encode, target_var) • kazoo_json(json_payload, field, target_var) Переменные: $kzR и $kzE
Конференция Kamailio 2019 Event routes event_route[kazoo:mod-init] { … } event_route[kazoo:consumer-event]
{ … } event_route[kazoo:consumer-event-connection-open] { … }
Конференция Kamailio 2019 Асинхронные события • Отправка BLF и MWI
без FreeSwitch • SIP MESSAGE • Расширенная информация о парковке (Polycom) • Обновление dispatcher по команде от kz_apps
Конференция Kamailio 2019 Enabled/Disabled Roles # # #!trydef TRAFFIC_FILTER-ROLE #
# #!trydef WEBSOCKETS-ROLE # # #!trydef TLS-ROLE # # #!trydef ANTIFLOOD-ROLE # # #!trydef RATE_LIMITER-ROLE # # #!trydef ACL-ROLE # # #!trydef MESSAGE-ROLE # # #!trydef PUSHER-ROLE # # #!trydef REGISTRAR_SYNC-ROLE # # #!trydef PRESENCE_SYNC-ROLE # # #!trydef PRESENCE_NOTIFY_SYNC-ROLE # # #!trydef SIP_TRACE_ROLE ## Enabled Roles #!trydef DISPATCHER-ROLE #!trydef NAT-TRAVERSAL-ROLE #!trydef REGISTRAR-ROLE #!trydef PRESENCE-ROLE #!trydef RESPONDER-ROLE #!trydef NODES-ROLE #!trydef FAST_PICKUP-ROLE #!trydef PRESENCE_QUERY-ROLE
Конференция Kamailio 2019 Enabled/Disabled Roles # # #!trydef TRAFFIC_FILTER-ROLE #
# #!trydef WEBSOCKETS-ROLE # # #!trydef TLS-ROLE # # #!trydef ANTIFLOOD-ROLE # # #!trydef RATE_LIMITER-ROLE # # #!trydef ACL-ROLE # # #!trydef MESSAGE-ROLE # # #!trydef PUSHER-ROLE # # #!trydef REGISTRAR_SYNC-ROLE # # #!trydef PRESENCE_SYNC-ROLE # # #!trydef PRESENCE_NOTIFY_SYNC-ROLE # # #!trydef SIP_TRACE_ROLE • На каждую роль - файл конфигурации • local.cfg - настройки • defaults.cfg - обязательная конфигурация
Конференция Kamailio 2019 Dispatcher • Выбирает наилучший freeswitch • Поиск
сервера клиента • Поиск вызова для pickup/transfer • trunkstore -> kamailio ## Enabled Roles #!trydef DISPATCHER-ROLE #!trydef NAT-TRAVERSAL-ROLE #!trydef REGISTRAR-ROLE #!trydef PRESENCE-ROLE #!trydef RESPONDER-ROLE #!trydef NODES-ROLE #!trydef FAST_PICKUP-ROLE #!trydef PRESENCE_QUERY-ROLE
Конференция Kamailio 2019 Nat Traversal ## Enabled Roles #!trydef DISPATCHER-ROLE
#!trydef NAT-TRAVERSAL-ROLE #!trydef REGISTRAR-ROLE #!trydef PRESENCE-ROLE #!trydef RESPONDER-ROLE #!trydef NODES-ROLE #!trydef FAST_PICKUP-ROLE #!trydef PRESENCE_QUERY-ROLE • nathelper
Конференция Kamailio 2019 Registrar ## Enabled Roles #!trydef DISPATCHER-ROLE #!trydef
NAT-TRAVERSAL-ROLE #!trydef REGISTRAR-ROLE #!trydef PRESENCE-ROLE #!trydef RESPONDER-ROLE #!trydef NODES-ROLE #!trydef FAST_PICKUP-ROLE #!trydef PRESENCE_QUERY-ROLE • registrar • usrloc
Конференция Kamailio 2019 Presence ## Enabled Roles #!trydef DISPATCHER-ROLE #!trydef
NAT-TRAVERSAL-ROLE #!trydef REGISTRAR-ROLE #!trydef PRESENCE-ROLE #!trydef RESPONDER-ROLE #!trydef NODES-ROLE #!trydef FAST_PICKUP-ROLE #!trydef PRESENCE_QUERY-ROLE • presence • presence_dialoginfo • presence_mwi • resence_xml • 1000+ строк конфигурации
Конференция Kamailio 2019 Опциональные модули # # #!trydef TRAFFIC_FILTER-ROLE #
# #!trydef WEBSOCKETS-ROLE # # #!trydef TLS-ROLE # # #!trydef ANTIFLOOD-ROLE # # #!trydef RATE_LIMITER-ROLE # # #!trydef ACL-ROLE # # #!trydef MESSAGE-ROLE # # #!trydef PUSHER-ROLE # # #!trydef REGISTRAR_SYNC-ROLE # # #!trydef PRESENCE_SYNC-ROLE # # #!trydef PRESENCE_NOTIFY_SYNC-ROLE # # #!trydef SIP_TRACE_ROLE • PUSHER - поддержка APNS Push нотификаций • TLS - поддержка TLS • WEBSOCKET - WS/WSS • RATE_LIMITER - поддержка ограничений настроенных в Kazoo • SIP_TRACE - поддержка Homer • PRESENCE_SYNC - синхронизация presence на разных зонах Kazoo
Конференция Kamailio 2019 Минусы • Большой объем конфигурации и логики
• WebRTC media обрабатывается в FS
Конференция Kamailio 2019 Гончаровский Игорь Kazoo конфигурация Kamailio Вопросы?