Sunday, November 22, 2009

Improve throughput with Intel 5100 in wireless N mode

When I test its throughput (from a wired computer) in wireless N-only mode with iperf in vista, the maximum throughput I was able to get is around 25Mbits/s although it shows 270-300Mbps data rate by windows. The router is a Airlink AR670W with stock firmware 1.01 and 40MHz channel width/Auto(DFS) channel. It's not faster than the throughput of Wireless G mode.

After I update the firmware of AR670W to DD-WRT build 13069, I found the signal quality of the Intel 5100 client is only around 23% at full Tx power (251mW) from the wireless status page. And it can only improves the throughput to ~35Mbits/s with iperf -w 64k -c intel-5100. Then I started to adjust the following things:
  1. Orientation of the two antennas of AR670W: On one position I found the signal quality of Intel 5100 was improved to 34%. 
  2. Manually set the channel number: After doing a site survey, I found the least crowded channel was not the one being picked up by DD-WRT. So I changed the channel number and the signal quality of Intel 5100 was improved to 40%

    Then I tested the throughput again, and no surprise it's now ~80Mbits/s. Even if I further increase the TCP windows size of iperf from 64k to 10M or reduce the Tx power to half (126mW), the throughput remains at ~80Mbits/s (wired to wireless). Later I had to enable the N-only wireless mode on a D-link DIR-655 router to maximize the throughput of another Intel 5100.

Friday, November 20, 2009

Samsung SGH-A887 (solstice)

  1. QUALCOM USB mode of Samsung 3G phones:

    • Dial *#782872# and confirm after 2 seconds to activate the mode
    • Connect phone to PC USB port with USB cable
    • After the drivers are installed, the following two were found under Ports
      • PHD HS-USB diagnostics 9002
      • PHD HS-USB NMEA 9002
    • PHD HS-USB Modem 9002 was installed under Modems
    • Two USB Composite Devices were installed under Universal Serial Bus Controllers
    • To exit QUALCOM mode, dial *#726872# and confirm after 2 seconds

  2. Firmware downloader mode:

    • Power off the phone
    • Remove any memory card you may have and then remove the SIM card
    • Hold down the 'Volume down' key (The bottom rocker button on the left side of your phone) and the camera button and press the power on button. 
    • A887 should start up into a screen with these on the top: DEMSBL BOOT loader for MSM6290 More than Downloader V5.43
    • Get MultiLoader V5.56 here to download the firmware for MSM6290

Sunday, November 8, 2009

Asterisk (PBX) and PAP2T

  1. hasexten=yes|no
    If the context for a peer sets hasexten=yes, Asterisk creates a hint for the user in the default context as shown below for a SIP peer 6000.
    CLI> dialplan show default
    [ Context 'default' created by 'pbx_config' ]
    '6000' => hint: SIP/6000 [pbx_config]
    1. Dial(${HINT}) [pbx_config]

    Therefore I can use Goto(default,6000,1) to ring it
  2. [general] user in users.conf
    It's set the default contexts for all other users. They can be overridden though. The following are in my [general] user (all my users are using SIP):
    fullname = My Name
    ; Starting point of allocation of extensions
    userbase = 6000
    ; Create SIP Peer
    hassip = yes
    ; Create IAX friend
    hasiax = no
    registeriax = no
    ; Create manager entry
    hasmanager = no
    callwaiting = yes
    threewaycalling = yes
    callwaitingcallerid = yes
    transfer = yes
    canpark = yes
    cancallforward = yes
    callreturn = yes
    call-limit = 100
    qualify = yes
    disallow = all
    allow = ulaw,alaw
    type = friend
  3. Asterisk directed call pickup
    I have two extensions: 6000 and 8888. Typically when there's a incoming call, only extension 6000 rings. I can pick up the call from the other extension though by pressing the # key from extension 8888. Therefore I have the following in features.conf
    pickupexten = #

    and the following in extensions.conf:
    voipbuster = SIP/voipbuster

    exten = _#,1,Pickup(6000@default)
    exten = _#,n,Hangup()

    include = CallingRule_pickup
    include = CallingRule_VBOut
    include = default

    exten => _001.,1,Dial(Local/${EXTEN:2}@gv-outbound/n)
    exten => _00[2-9]X.,1,Macro(trunkdial-failover-0.3,${voipbuster}/${EXTEN:0},,voipbuster,)

    I had to add the following to the Dial Plan of the line that will pickup the call in my PAP2T to pass # key directly to Asterisk: #S0
  4. Blind transfer
    I use the * key for Blind transfer. Therefore I have the following in features.conf
    blindxfer = *
    and the following in extensions.conf:

    include = CallingRule_VBOut
    include = default
    include = parkedcalls
    include = conferences
    include = ringgroups
    include = voicemenus
    include = queues
    include = voicemailgroups
    include = directory
    include = pagegroups
    include = page_an_extension
    exten = _*,1,Transfer(8888)

    I had to add the following to the Dial Plan of the line that will initiate the transfer in my PAP2T to pass * key directly to Asterisk: *S0
  5. Connecting PAP2T to the telephone lines 1&2 in my house (T568A type socket): I cut one standard 2-wire RJ11 telephone cable assembly in half and connected them to Blue and Orange lines of the T568A. That will enable me to connect a phone onto the wall outlet at any room to my PAP2T.