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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
IqTek
October 01, 2019
Programming
210
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
87
Техническая и программная сторона VoIP
iqtek96
0
140
WebRTC
iqtek96
1
140
2._Разработка_с_Asterisk.pdf
iqtek96
0
120
ML в VoIP
iqtek96
0
150
Ретроспектива одного проекта - IqDialer
iqtek96
0
180
FMC - интегрируем офисную телефонию с GSM сетью
iqtek96
0
83
Что нового в VoIP в 2019
iqtek96
0
72
Kamailio как proxy для WebRTC
iqtek96
0
390
Other Decks in Programming
See All in Programming
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
530
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
320
How I Stole PSI from Android Studio - DroidKaigi2026
worker8
0
120
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
0
240
業務時間外もAIに働いてもらう話
colorful12
3
10k
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
450
選挙速報を多くのユーザーへ 届ける Live Activities 設計
hamayokokuririn
0
130
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
330
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
150
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
160
AIとGame Jamで、ゲームを完成させた話
takahirosaeki
0
120
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
150
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.9k
Statistics for Hackers
jakevdp
799
230k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
500
Documentation Writing (for coders)
carmenintech
77
5.5k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Paper Plane
katiecoart
PRO
3
53k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Faster Mobile Websites
deanohume
310
32k
Into the Great Unknown - MozCon
thekraken
41
2.7k
Paper Plane (Part 1)
katiecoart
PRO
1
11k
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 Вопросы?