среда, 28 октября 2009 г.

Регистратор SIP на twisted.

Питонисты в курсе, что есть такая чудо библиотека для работы с сетевыми протоколами как Twisted. Она немного сложна поначалу, но после просветления становится совершенно необходимым инструментом.
В стандартной поставке с ней идет множество уже реализованных протоколов - IMAP, XMPP, HTTP (в сочетании с обработкой URL через джанго и какой-нибудь библиотекой шаблонов весьма полезный инструмент) и т.д. Количество же протоколов, которые реализованы на/для Twisted не поддается подсчету. Таким образом Tornado может спать спокойно - сравнивать его с Twisted вообще некорректно.

Среди стандартных протоколов нашел SIP - последний раз обновлялся 3 года назад, есть проект VoIP телефона shtoom, который также заглох. Но тем не менее вот вам регистратор на Twisted:

#!/usr/bin/env python
# coding: utf-8

from twisted.application import internet, service

import sip

DOMAIN='192.168.9.5'

application = service.Application("JuzzCallBack")

sip.RegisterProxy.registry = sip.InMemoryRegistry(DOMAIN)
sip.RegisterProxy.locator = sip.RegisterProxy.registry
sip.RegisterProxy.debug = True
proxy = internet.UDPServer(5060,sip.RegisterProxy())

proxy.setServiceParent(application)

И что удивительнее всего - он работает. На досуге хочется попробовать сделать простейший SIP-телефон, будет интересно. Назову его Shtoom ressurection, он не будет обладать даже функциями предшественника, и сдохнет на версии -0.1, ожидайте!

1 комментарий:

Bambr комментирует...

DivMod sine - tam obnovlennyj sip stack, v samom twisted vrode nachali portirovat' sip stack iz divmod sine obratno v twisted no tak i zabili, ja vrode dernulsja potihon'ku zakonchit' eto delo, no nikakogo feedback'a ot tamoshnih tovarishej ne poluchil, oni tipa bizi i vse takoe. v divmod tak zhe est' svoj klon shtoom.