Usb dongle block caller id

Hi. i am running asterisk 11 and i have a 3g usb dongle to make/receive calls. At the moment the outgoing calls are with the following:

exten => _9X.,1,Dial(Dongle/dongle800/${EXTEN:1},120,KT)
exten => _9X.,n,Hangup(${HANGUPCAUSE})

i need to block my caller ID on the outgoing calls and the carrier has the #31# for this to works(it has been checked in an ordinary mobile phone). If i edit the dialplan to be:

exten => _9X.,1,Dial(Dongle/dongle800/#31#ww${EXTEN:1},120,KT)

but the carrier responds that the number is wrong. Here is the output from the asterisk’s console:

root@Pbx: /etc/asterisk $ asterisk -rvvv
Asterisk 11.25.3, Copyright (C) 1999 - 2013 D  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5                    -- Executing [9211123456@AllCalls:1] Goto("SIP/500-00000003", "DefaultPlan,9211123456,1") in new stack                               -- Goto (DefaultPlan,92105727105,1)
    -- Executing [9211123456@DefaultPlan:1] Dial("SIP/500-00000003", "Dongle/dongle800/#31#ww211123456,120,KT") in new stack         [2018-04-10 13:23:46] WARNING[1327][C-00000003]: channel.c:79 parse_dial_string: Invalid destination '#31#ww211123456' in chan_dongle, only 0123456789*#+ABC allowed               [2018-04-10 13:23:46] WARNING[1327][C-00000003]: app_dial.c:2455 dial_exec_full: Unable to create channel of type 'Dongle' (cause 88 - Incompatible destination)
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Executing [9211123456@DefaultPlan:2] Hangup("SIP/500-00000003", "88") in new stack  == Spawn extension (DefaultPlan, 9211123456, 2) exited non-zero on 'SIP/500-00000003'

any ideas please?

Previous chan_dongle questions have established that there is no chan_dongle experience amongst the regulars on this forum. It is community supported code.

Why are you calling with double ‘w’ in your called number?

i thought that it might help to add a delay of 0.5 secs for each w.
Do you see any way to make it work, please?
If i take the ww off, then i have:

[2018-04-11 15:59:55] NOTICE[1172]: chan_sip.c:23797 handle_response_peerpoke: Peer '500' is now Reachable. (40ms / 2000ms)              == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5                    -- Executing [9211123456@AllCalls:1] Goto("SIP/500-00000004", "DefaultPlan,9211123456,1") in new stack
    -- Goto (DefaultPlan,9211123456,1)          -- Executing [9211123456@DefaultPlan:1] Dial("SIP/500-00000004", "Dongle/dongle800/#31#211123456,120,KT") in new stack
    -- Called Dongle/dongle800/#31#211123456    -- Dongle/dongle800-0100000001 is making progress passing it to SIP/500-00000004
  == Spawn extension (DefaultPlan, 9211123456, 1) exited non-zero on 'SIP/500-00000004'

and the carrier to respond that the number is not valid and that i have to call directory services.

During call setup, mobile phone systems don’t send one digit at a time; they send the whole number, in one go, when you press the end key, or do the equivalent electronically.

OK, so how do i do that, please?

Back to my original response: there is no chan_dongle expertise here. If removing the w’s doesn’t help, it is unlikely anyone will know what is going wrong, or even if what you want is possible.