• Stefan Knoblich's avatar
    ftmod_libpri: Major rework of runtime thread, lpwrap event loop, restart… · 3a4440ee
    Stefan Knoblich 提交于
    ftmod_libpri: Major rework of runtime thread, lpwrap event loop, restart b-channel handling and some new features.
    
    Add per b-channel private data (ftdm_libpri_b_data_t), move the q.931 libpri
    call pointer into it and use channel->call_data to make it accessible.
    
    Use ftdm_channel_wait() instead of select() to wait for I/O events on
    the D-Channel and rewrite the timeout handling, adding support for custom
    timers that can be added to the b-channel private data and started/stopped
    with lpwrap_timer_start()/_stop().
    
    The (sorted) list of active lpwrap timers is protected by the timer_mutex,
    which is initialized in the now unified lpwrap_init_pri() (see below) and
    destroyed in the new lpwrap_destroy_pri() function.
    
    Unify lpwrap_init_pri() and lpwrap_init_bri(). Use the span type to select
    BRI/PRI and Point-to-Point vs. Multipoint settings.
    
    Use the new custom lpwrap timer API to implement T302 (aka overlap receiving
    digit timeout). The default T302 timeout is 3000 miliseconds and can be set
    via the "digit_timeout" or "t302" span configuration parameter
    (0 = disable timer, valid range = 3000 ... 30000 miliseconds).
    
    The lpwrap_pri_init() changes made it neccessarry to rewrite the span runtime
    thread event loop. The d-channel initialization and libpri event handler
    registration have been moved out of the event loop. The b-channel restart
    handling in the event loop has been left as-is, pending a further clean up in
    the future.
    
    Rename on_info() to on_information() and add a new on_keypad_digit() event
    handler to convert incoming KEYPAD DIGIT messages to channel DTMF events
    (only useful on BRI PTMP NT-mode).
    
    The channel restart handling has been improved to distinguish between locally
    triggered and restarts caused by the remote end (= incoming RESTART messages).
    Restarts on the D-Channel now use pri_restart(), causing a Q.921 reset on
    the span.
    
    Large patch, i'd have loved to split this into smaller pieces and actually
    test some of the bits more toroughly (restart handling), but some people
    are f*cking annoying, so here it is.
    Signed-off-by: 's avatarStefan Knoblich <stkn@openisdn.net>
    3a4440ee
名称
最后提交
最后更新
..
apr 正在载入提交数据...
apr-util 正在载入提交数据...
broadvoice 正在载入提交数据...
curl 正在载入提交数据...
esl 正在载入提交数据...
freetdm 正在载入提交数据...
iksemel 正在载入提交数据...
ilbc 正在载入提交数据...
js 正在载入提交数据...
ldns 正在载入提交数据...
libcodec2 正在载入提交数据...
libdingaling 正在载入提交数据...
libedit 正在载入提交数据...
libg722_1 正在载入提交数据...
libnatpmp 正在载入提交数据...
libscgi 正在载入提交数据...
libsndfile 正在载入提交数据...
libteletone 正在载入提交数据...
libwebsockets 正在载入提交数据...
libzrtp 正在载入提交数据...
miniupnpc 正在载入提交数据...
openzap 正在载入提交数据...
pcre 正在载入提交数据...
portaudio 正在载入提交数据...
silk 正在载入提交数据...
sofia-sip 正在载入提交数据...
spandsp 正在载入提交数据...
speex 正在载入提交数据...
sqlite 正在载入提交数据...
srtp 正在载入提交数据...
stfu 正在载入提交数据...
tiff-4.0.2 正在载入提交数据...
unimrcp 正在载入提交数据...
win32 正在载入提交数据...
xmlrpc-c 正在载入提交数据...
yaml 正在载入提交数据...
.gitignore 正在载入提交数据...