· 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
There will be big changes for you but you will be happy.


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.0031 sec