[asterisk-users] Trying to forward calls by using the Callee's
context as the forward dial context
Ricardo Martins
rpoppi77 at gmail.com
Fri Dec 15 11:20:30 MST 2006
Hi John, I´m very interested into this call forwarding capabilities and
I solved this problem filtering on the web-script (in my case, php) the
number the user can intert on the database. (I know it´s not an asterisk
solution).
There is an issue that I couldn´t handle. When I forward the call, I
want to charge the user that the call was made FOR. How are you dealing
with that? Going direct to the point, I just need to know - a tip would
be apreciated either - how to translate/replace the FROM field of the
forwarded call.
Rgds, Ricardo.
John French wrote:
>I'm simply trying to forward calls to users who have the call forwarding
>feature enabled (FWD Status and FWD Ph Number kept in the astDB). The
>problem is that I want users to be able to forward calls to numbers that
>they would normally be allowed to dial within their own context. (I
>don't want a local call only person forwarding to a long dist number,
>for example.) I'm able to get the channel context for SIP devices but
>not for IAX or Zap Devices. I need some pointers on getting IAXPEER to
>work and how to handle getting the ZAP context info. If there's an
>easier way, I'm all ears. Thanks.
>
>; #####################Set Some Variables####################
>exten => s,1,Set(DEVICE=${ARG1}) ;i.e. SIP/johns_phone
>exten => s,n,Set(Protocol=${CUT(DEVICE,/,1)}) ;Parse out SIP
>exten => s,n,Set(Phone=${CUT(DEVICE,/,2)}) ;Parse out johns_phone
>
>;Stuff omitted for some amout of brevity....
>
>; #####################Make Forward Calls######################
>; We only want people to be able to forward to numbers they could
>normally call
>; We'll have to somehow get their dialing contexts from the channel conf
>files.
>exten => s,n(Forward),NoOp()
>
>exten => s,n,GotoIf($["${Protocol}" = "SIP"]?SIPDev)
>exten => s,n,GotoIf($["${Protocol}" = "IAX2"]?IAXDev)
>exten => s,n,Goto(ZapDev)
>
>;ok, they are an IAX device so use IAXPEER
>exten =>
>s,n(IAXDev),Set(CalledUsersContext=${IAXPEER(${Phone}:context)})
>exten => s,n,Goto(dial_time)
>
>;ok, they are an SIP device so use SIPPEER
>exten =>
>s,n(SIPDev),Set(CalledUsersContext=${SIPPEER(${Phone}:context)})
>exten => s,n,Goto(dial_time)
>
>;ok, they are an Zap device so use... Uhhhhh.
>exten => s,n(ZapDev),NoOp( I have no clue how to get the zap channel's
>context...)
>
>exten => s,n(dial_time),NoOp(======================> Chan Type
>${Protocol})
>exten => s,n,NoOp(======================> Chan Name ${Phone})
>exten => s,n,NoOp(======================> Channel User's context
>${CalledUsersContext})
>exten => s,n,Dial(Local/${FWDNumber}@${CalledUsersContext}/n)
>
>
>Results at console on verbosity 9:
>SIPPEER() Works as advertised when I dial a SIP phone which has been
>call forwarded
> -- Executing NoOp("Zap/1-1", "======================> Chan Type
>SIP") in new stack
> -- Executing NoOp("Zap/1-1", "======================> Chan Name
>jf_linksys") in new stack
> -- Executing NoOp("Zap/1-1", "======================> Channel Users
>context longdistance_users") in new stack
> -- Executing Dial("Zap/1-1", "Local/5551212 at longdistance_users/n")
>in new stack
>
>IAXPEER() Seems to be broken or I don't know how to use it properly.
> -- Executing NoOp("SIP/jf_linksys-08f20548",
>"======================> Chan Type IAX2") in new stack
> -- Executing NoOp("SIP/jf_linksys-08f20548",
>"======================> Chan Name johns_pc") in new stack
> -- Executing NoOp("SIP/jf_linksys-08f20548",
>"======================> Channel Users context ") in new stack
> -- Executing Dial("SIP/jf_linksys-08f20548", "Local/5551212@/n") in
>new stack
>_______________________________________________
>--Bandwidth and Colocation provided by Easynews.com --
>
>asterisk-users mailing list
>To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-users
>
>
>
More information about the asterisk-users
mailing list