· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Asterisk Ver0-2-0/Res Parking

AsteriskVer0-2-0/res/res_parking.c


* int ast_bridge_call(struct ast_channel *chan, struct ast_channel *peer, int allowredirect, int allowdisconnect)
  • if (chan->_state != AST_STATE_UP) {
    • if (ast_answer(chan)) return -1;
  • }
  • for (;;) {
    • res = ast_channel_bridge(chan, peer, (allowdisconnect ? AST_BRIDGE_DTMF_CHANNEL_0 : 0) + (allowredirect ? AST_BRIDGE_DTMF_CHANNEL_1 : 0), &f, &who);
    • if (res < 0) return -1;
    • if (!f || ((f->frametype == AST_FRAME_CONTROL) && ((f->subclass == AST_CONTROL_HANGUP) || (f->subclass == AST_CONTROL_BUSY) || (f->subclass == AST_CONTROL_CONGESTION)))) {
      • res = -1;
      • break;
    • }
    • if ((f->frametype == AST_FRAME_CONTROL) && (f->subclass == AST_CONTROL_RINGING)) {
    • }
    • if ((f->frametype == AST_FRAME_CONTROL) && (f->subclass == AST_CONTROL_OPTION)) {
    • }
    • if (f && (f->frametype == AST_FRAME_DTMF) && (who == chan) && allowdisconnect && (f->subclass == '*')) {
      • res = -1;
      • break;
    • }
    • if ((f->frametype == AST_FRAME_DTMF) && (who == peer) && allowredirect && (f->subclass == '#')) {
    • } else {
    • }
  • }
  • return res;

* channel.c
  • ast_channel_bridge
    • ÀÔ·ÂµÈ ³»¿ëÀÌ AST_FRAME_CONTROL À̸é, return 0
    • ÀÔ·ÂµÈ ³»¿ëÀº fo ¿¡, ´©°¡¿¡°Ô¼­ ÀÔ·ÂµÈ °ÍÀΰ¡´Â rc ¿¡ assign
if ((f->frametype == AST_FRAME_CONTROL) && !(flags & AST_BRIDGE_IGNORE_SIGS)) {
                        *fo = f;
                        *rc = who;
                        res =  0;
                        break;
                }

ID
Password
Join
Let not the sands of time get in your lunch.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-08-09 14:59:28
Processing time 0.0014 sec