I HAVE A DREAM Unmask caller id?

Twilight Sparkle

https://voip.ms/en/invite/MjM2MjQ4
Joined
Jul 21, 2013
Messages
448
Reaction score
57
so i has to buy a 1-800 number? what service should i go with?
 

Hyksos

Guru
Joined
May 28, 2011
Messages
474
Reaction score
70
How in the world would you know what i should wear tomorrow? See my point? ;0
 

iSEPIC

New Member
Joined
Dec 16, 2008
Messages
11
Reaction score
0
some of the headers changed from when this was released, I wrote a 2600hz magazine guide on this a long time ago, but that kinda dates me. The method above I think Kevin Mitnik was demoing and someone recorded it, not 100% sure though.

You can do a tcp dump, and look for the new headers (to see how your provider is sending them)while the blocked call comes in - just call your DID from a blocked cell phone, and search from your cell phone number, you'll spot the proper header easy this way! Start this dump just before the call comes in, and control c it right after, look for your cell phone number that comes in blocked (if your provider unblocks it, it will be there in the header! then find which part of the header they are sending it under, and cut it out (see how I did it below).
tcpdump -i eth0 -n -s 0 port 5060 -vvv -w /tmp/`date +%F_%T`.cap

some voip providers provide the PAI on local DIDs, as well as Toll Free.
Some providers just unmask all toll free DIDs, so you don't even have to do this.
So get a cheap one for $1, and use it only to fwd calls back to your cell phone which has the original blocked call.

It gets a little compicated if you use your main incoming DID to also fwd to your cell, if you fwd your cell to the DID, in that case you need to pull out the diversion header, check to see if its your cell phone doing the diversion, and if so, to just fwd it back to the cell phone (instead of gong through the IVR for instance).
So the flow would be, blocked call to cell, cell to your asterisk DID (with a provider who provides good headers), divert on busy (such as *67*number# on gsm) to your asterisk did, incoming route check for diversion header of your cell phone, fwd back to cell phone if its a diversion, else send it to your ivd (or whatever).

Here is mine, which by the way, looks for the two types of headers, one from toll free incoming calls, and one from local incoming calls, in the headers (in my case its P-Asserted-Identity and Contact respectfully), it will show the incoming phone number. I also have a notification routine, which will put [PRIVATE] as the callerid name, and show the number, and sends that as a ams text and email (so I know an incoming call is on its way) - I also put in the email and sms the diversion reason (busy, call fwd always, etc) so if I get someone calling me, and it is in fact a forwarded number in itself (nothing to do with above) I can see the original number as well as the number which is diverting it to my number


(sorry for my mess below, I know it's a mess, but it works FOR NOW!)

[from-voipprovider]
include => app-blacklist-check-custom
exten => _X!,1,Set(privheader=${SIP_HEADER(Privacy)})
exten => _X!,n,Set(paidcheck=${CUT(CUT(CUT(SIP_HEADER(P-Asserted-Identity),+,2),@,1),:,1)})
exten => _X!,n,Set(fromcheck=${CUT(CUT(CUT(SIP_HEADER(From),+,2),@,1),:,1)})
exten => _X!,n,Set(contactcheck=${CUT(CUT(CUT(SIP_HEADER(Contact),+,2),@,1),:,1)})
exten => _X!,n,Set(fwdfromnum=${CUT(CUT(CUT(SIP_HEADER(Diversion),+,2),@,1),:,1)})
exten => _X!,n,Set(divreason=${CUT(CUT(CUT(SIP_HEADER(Diversion),\;,2),\;,1),=,2)})
exten => _X!,n,Set(diversion=${SIP_HEADER(Diversion)})
exten => _X!,n,Set(CALLERID(name)=${fromcheck})
exten => _X!,n,GotoIf($[${LEN(${privheader})} > 1]?unblocktf)
exten => _X!,n,GotoIf($["${CUT(CUT(CUT(SIP_HEADER(From),:,2),@,1),:,1)}" = "Anonymous"]?unblocklocal)
exten => _X!,n(notblocked),NoOp
exten => _X!,n,Set(CALLERID(num)=${CUT(CUT(CUT(SIP_HEADER(P-Asserted-Identity),+,2),@,1),:,1)})
exten => _X!,n,Set(CALLERID(ani)=${CUT(CUT(CUT(SIP_HEADER(P-Asserted-Identity),+,2),@,1),:,1)})
exten => _X!,n,Set(CURLOPT(conntimeout)=1)
exten => _X!,n,Set(CURLOPT(httptimeout)=2)
exten => _X!,n,Set(CALLERID(name)=${CURL(https://[email protected]/v2/phone/${CALLERID(num):1}?format=pbx)})
exten => _X!,n,Set(cidname99=${CALLERID(name)})
exten => _X!,n,Set(cidnum99=${CALLERID(num)})
exten => _X!,n,Set(ani299=${CALLINGANI2})
exten => _X!,n,Set(rdnis99=${CALLERID(rdnis)})
exten => _X!,n,Set(ani99=${CALLERID(ani)})
exten => _X!,n,GotoIf($[${LEN(${fwdfromnum})} = 0]?nofwd)
exten => _X!,n,Set(CALLERID(name)=[FWD] ${CALLERID(name)})
exten => _X!,n,Set(cidname99=${CALLERID(name)})
exten => _X!,n(nofwd),NoOp
exten => _X!,n,GotoIf($["${fwdfromnum}" = "1MYCELL"]?fwdfromcell1)
exten => _X!,n,GotoIf($["${fwdfromnum}" = "1MYCELL2"]?fwdfromcell2)
exten => _X!,n,Gosub(callnotify,${EXTEN},1)
exten => _X!,n,Goto(from-trunk,${EXTEN},1)
exten => _X!,n(unblocktf),NoOp
exten => _X!,n,Set(CALLERID(num)=${CUT(CUT(CUT(SIP_HEADER(P-Asserted-Identity),+,2),@,1),:,1)})
exten => _X!,n,Set(CALLERID(ani)=${CUT(CUT(CUT(SIP_HEADER(P-Asserted-Identity),+,2),@,1),:,1)})
exten => _X!,n,Set(CURLOPT(conntimeout)=1)
exten => _X!,n,Set(CURLOPT(httptimeout)=2)
exten => _X!,n,Set(CALLERID(name)=${CURL(https://[email protected]/v2/phone/${CALLERID(num):1}?format=pbx)})
exten => _X!,n,Set(CALLERID(name)=[PRIVATE] ${CALLERID(name)})
exten => _X!,n,Set(cidname99=${CALLERID(name)})
exten => _X!,n,Set(cidnum99=${CALLERID(num)})
exten => _X!,n,Set(ani299=${CALLINGANI2})
exten => _X!,n,Set(rdnis99=${CALLERID(rdnis)})
exten => _X!,n,Set(ani99=${CALLERID(ani)})
exten => _X!,n,GotoIf($[${LEN(${fwdfromnum})} = 0]?nofwd2)
exten => _X!,n,Set(CALLERID(name)=[FWD] ${CALLERID(name)})
exten => _X!,n,Set(cidname99=${CALLERID(name)})
exten => _X!,n(nofwd2),NoOp
exten => _X!,n,GotoIf($["${fwdfromnum}" = "MYCELL"]?fwdfromcell1)
exten => _X!,n,GotoIf($["${fwdfromnum}" = "MYCELL2"]?fwdfromcell2)
exten => _X!,n,Gosub(callnotify,${EXTEN},1)
exten => _X!,n,Goto(from-trunk,${EXTEN},1)
exten => _X!,n(unblocklocal),NoOp
exten => _X!,n,Set(CALLERID(num)=${CUT(CUT(CUT(SIP_HEADER(Contact),+,2),@,1),:,1)})
exten => _X!,n,Set(CALLERID(ani)=${CUT(CUT(CUT(SIP_HEADER(Contact),+,2),@,1),:,1)})
exten => _X!,n,Set(CURLOPT(conntimeout)=1)
exten => _X!,n,Set(CURLOPT(httptimeout)=2)
;exten => _X!,n,Set(CALLERID(name)=${CURL(https://[email protected]/v2/phone/${CALLERID(num):1}?format=pbx)})
exten => _X!,n,Set(CALLERID(name)=[PRIVATE] ${CALLERID(name)})
exten => _X!,n,Set(cidname99=${CALLERID(name)})
exten => _X!,n,Set(cidnum99=${CALLERID(num)})
exten => _X!,n,Set(ani299=${CALLINGANI2})
exten => _X!,n,Set(rdnis99=${CALLERID(rdnis)})
exten => _X!,n,Set(ani99=${CALLERID(ani)})
exten => _X!,n,GotoIf($[${LEN(${fwdfromnum})} = 0]?nofwd3)
exten => _X!,n,Set(CALLERID(name)=[FWD] ${CALLERID(name)})
exten => _X!,n,Set(cidname99=${CALLERID(name)})
exten => _X!,n(nofwd3),NoOp
exten => _X!,n,GotoIf($["${fwdfromnum}" = "1MYCELL"]?fwdfromcell1)
exten => _X!,n,GotoIf($["${fwdfromnum}" = "1MYCELL2"]?fwdfromcell2)
exten => _X!,n,Gosub(callnotify,${EXTEN},1)
exten => _X!,n,Goto(from-trunk,${EXTEN},1)
exten => _X!,n(returntotrunk),NoOp
exten => _X!,n,Goto(from-trunk,${EXTEN},1)
exten => _X!,n(fwdfromcell1),NoOp
exten => _X!,n,Dial(SIP/MYPROVIDER/1MYCELL,45,)
exten => _X!,n,Congestion
exten => _X!,n(fwdfromcell2),NoOp
exten => _X!,n,Dial(SIP/MYPROVIDER/1MYCELL2,45,)
exten => _X!,n,Congestion

[callnotify]
exten => 1MYDID1,1,System(echo "To:[email protected]" > /tmp/asterisk/${EXTEN}email)
exten => 1MYDID1,n,System(echo "To:[email protected]" > /tmp/asterisk/${EXTEN}page)
exten => 1MYDID1,n,System(echo "${cidnum99}" > /tmp/asterisk/INCOMINGcid)
exten => 1MYDID1,n,System(echo "Subject: [PBX] ${cidname99} @ ${cidnum99}" >> /tmp/asterisk/${EXTEN}email)
exten => 1MYDID,n,System(echo "${cidname99}" > /tmp/asterisk/INCOMINGcnam)
exten => 1MYDID,n,System(echo "" >> /tmp/asterisk/${EXTEN}email)
exten => 1MYDID,n,System(echo "" >> /tmp/asterisk/${EXTEN}page)
exten => 1MYDID,n,System(echo "\r\n NAME: ${cidname99}\r\n\r\n CID: ${cidnum99}\r\n\r\n DID: ${EXTEN} \r\n\r\n FWD: ${fwdfromnum} [${divreason}] \r\n\r\n\r\n -Asterisk" >> /tmp/asterisk/${EXTEN}email)
exten => 1MYDID,n,System(echo "${cidname99} @ ${cidnum99} | DIALED:${EXTEN} | FWDFRM:${fwdfromnum}" >> /tmp/asterisk/${EXTEN}page)
exten => 1MYDID,n,System(sendmail -t -f [email protected]< /tmp/asterisk/${EXTEN}email)
exten => 1MYDID,n,System(sendmail -t -f [email protected]< /tmp/asterisk/${EXTEN}page)
exten => 1MYDID,n,Return
 

Twilight Sparkle

https://voip.ms/en/invite/MjM2MjQ4
Joined
Jul 21, 2013
Messages
448
Reaction score
57
ok so here is what i have today, let hope you can follow along with my mess.... lol

i have two DID's
1. is Normal did for local calls
2. is Toll Free Number that allows Unmask of calls

i have 3 phone numbers
1. Cell Phone AT&T
2. DID for local calls as listed above
3. DID for Toll Free Number to unmask as listed above

here it goes
1. if a caller calls my AT&T cell phone direct i can send the *67 blocked called to Toll Free DID using call foward and then Toll Free DID will unmask the caller id and send it back to my at&t cell phone with there real caller id ( this part works fine 100% ) but below is the issues i has at hand!

but here is the part that is not working
2. if caller calls my DID for Local calls then the DID for calls forwards to my cell phone from pbx it shows it blocked but yet my cell phone is told to send blocked calls to the Toll Free DID to unmask...... but here is the worst part..... instaed of sendind the Callers caller id back to me unmasked it send MY OWN CELL PHONE AT&T CELLER ID BACK TO ME and forgets all about the first caller.....


Example:
Caller Calls Local DID
then it goes to Pbx in a flash PBX SERVER
PBX in a flash server sees where to route the inbound
sends the call to my cell phone
my cell phone see its *67 and send it to the Toll Free Number DID
the pbx in a flash server see's that a call is coming in to Toll Free DID and routes it back to my Cell phone to show me who is calling *67 but DOSE NOT SHOW there caller id but it Unmasked my own AT&T cell phone number and that should have not done that!


hope you under stand this and can get back to me please..........
 

Hyksos

Guru
Joined
May 28, 2011
Messages
474
Reaction score
70
It's pretty circumvoluted at this point and you're not providing the details or the relevant logs.
But when a call is made toward your mobile phone number, forwarding it (with your cell) would be done through the PSTN by the telco switch trying to send it to your cellphone.
Because the switch trying to connect the call to your cell is told to foward it to the 1800 before it actually connects the call to your cell, all the original routing information is retained and the call is fowarded to the 1800 by the switch.
The forward count would be incremented by one (to prevent infinite looping of fowarded call through the PSTN swithes) but then the original call with it's info (original caller ID) is forwared as is to the 1800 (number) provider.

Because it's a 1800 destination it needs to know the incoming caller ID for billing and area restriction purposes (if applicable). So the 1800 provider have access to the original caller ID because it's receiving the call from the PSTN as is, forwarded through the PSTN forward function.

When your local DID is called and the call is sent to your PBX, your PBX "fowards" it to your cell phone by a totally different method. (Follow-me, cellphone followed by #?)
Your PBX will make a call toward your cellphone through your outbound trunk and once it connects, to the cell (or to the 1800 provider because your forwarded it) it will bridge the original call made to your local DID with the outgoing call it made out your trunk.
In this scenario the original call leg toward your local DID effectively ended at your PBX through your local did trunk provider (which is not a 1800 DID so the caller ID might already be stripped anyway).
It was not forwarded through the PSTN forward function to a 1800 provider where the original routing info would have still been available.
The call was delivered to your local DID provider and sent to your PBX where it was answered, that leg of the call was never sent to your 1800.

It's why I think it's normal that it doesn't do what you're expecting. You're using "Forward" and "Send to" indiscriminately to describe scenario that are technically, very different. Like fowarding 1 call leg through a SS7 switch in the PSTN and forwarding calls by establishing a second call leg and bridging the original leg to it once the second leg has been answered.

Unrelated but important to note when adding 1800 number everywhere in your call flows:
I'm not a 1800 expert but I was always told that calling toll free numbers from cell phone can be a hit and miss thing. People calling big telcos to report call completion error to their 1800 are often told that if the caller was calling from a cell phone it's normal that the call was not connected. It doesn't mean something is wrong and should be investigated.
Toll free numbers aim to control who can use them based on the fact that the caller would have to make a long distance to call the local DID of the business he's trying to call.
So restriction based on land line area codes make sense. But a cell phone from Washington (with a Washinton area code) can make a local call to Montreal (no long distance fee) if the cell phone in question is physically roaming in Montreal...
So the cell phone user could/should have used the local number and not the toll free...
Cellphone and toll free issues were always summarized that way to me.

There is probably better knowledge out there about calling toll free numbers from cell phones... But I don't have that much experience or knowledge of toll free number.
Others can jump in they think I got something wrong which wouldn't be surprising given your scenario.
 

iSEPIC

New Member
Joined
Dec 16, 2008
Messages
11
Reaction score
0
Yeah, you need to do a tcp dump and see if you can find your cell phone in it, if not, its your provider (which is my best guess).
Try flowroute, they offer DIDs (local) that will unmask too, so its a bit less expensive (don't port a # in else it won't work, you have to use one of their existing dids )
 

kenn10

Well-Known Member
Joined
Dec 16, 2007
Messages
3,789
Reaction score
2,202
I'm not convinced that stripping masked caller-id info is even legal. I believe I read someplace that a provider is not supposed to provide that except to another phone company. That said, why don't you just reject anonymous calls and call it a day. You never explained why you need the caller-id information. If they don't want to give up their identity, don't accept their call.
 

iSEPIC

New Member
Joined
Dec 16, 2008
Messages
11
Reaction score
0
I'm not convinced that stripping masked caller-id info is even legal. I believe I read someplace that a provider is not supposed to provide that except to another phone company. That said, why don't you just reject anonymous calls and call it a day. You never explained why you need the caller-id information. If they don't want to give up their identity, don't accept their call.


I'm not a lawyer, but it seems to me the way I read it, is if so long as you are not doing anything "bad" or so long as the call from and to your own state (intrastate) you'll be fine. I'd suspect companies like Trapcall would be out of business by now if it were illegal. Why pay them to do the same thing you can do yourself, for free?
 

steve54301

Guru
Joined
Jun 7, 2008
Messages
135
Reaction score
18
I am pretty sure if someone is blocking their caller id, the only way to get who they are is off the SS7 circuit, which traditionally only telephone companies and 911 centers have access to.

http://en.wikipedia.org/wiki/LIDB

So you'll need more than a 800 number. You'll need special provisions from your 800 number termination provider.
 

Dave Gray

Guru
Joined
May 22, 2013
Messages
150
Reaction score
60
If you have an 800 number, you don't need caller ID. Since you are paying for the call, you get ANI (Automatic Number Id), instead (or, in addition if the caller ID wasn't blocked.)
Services using 800 numbers were using this for years before caller ID was generally available (yeah, there was such a time. Anyone else remember when caller ID on your cell phone was a chargeable extra?)
 

Twilight Sparkle

https://voip.ms/en/invite/MjM2MjQ4
Joined
Jul 21, 2013
Messages
448
Reaction score
57
My Dream is fulfilled! n_n

My Steps to unmask a call

1. get a Vitelity or Sipsation Number ( Vitelity must be a Toll Free # $1.49 a month or Sipstation local # but $20 a month wow..... )
2. i use Vitelity, so i will use steps with it: go to Vitelity site & DO NOT ADD a CALLER ID to out going. if u do all will fail. all calls will show ur caller id in & out
3. on cell phone or office phone i setup call forward, using my toll free # ( sad part is 30sec calls are now 19sec calls you lose 10sec) so when some one calls you blocked *67x-xxx-xxxx you get Priavte call, DO NOT ANSWER CALL, after calls ends it will go to Vitelity Toll Free #, then Vitelity, will send the call back to your cell phone with the callers caller id & number. issues solved.

NO PBX is needed but if u know how to integrate it do it. i like i do but i wont go into a lot with that NO i wont even touch it. cuz its a lot to explain.

so this is how u Unmask calls. for only $1.49 a month at a few cents per-min. no contract its pay as u go. its just about the same thing as TrapCall.com but cheaper and its ur's.

Good Luck. Hope i did not get yall lost & confused. n_n
 

Members online

Forum statistics

Threads
25,824
Messages
167,830
Members
19,249
Latest member
jetest
Get 3CX - Absolutely Free!

Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.
Top