> 17.6 | AT^SPBW Write into Phonebook with location report

> The AT^SPBW write command can be used to create, edit and delete a phonebook entry at a <location> of the active storage selected with AT+CPBS. After having written the phonebook entry <location> is shown.
> If <storage>="FD" (SIM fixed dialing numbers) is selected, PIN2 authentication has to be performed prior to any write access.
> The AT^SPBW test command returns the location range supported by the current storage, the maximum length of the <number> field, the range of supported <type> values and the maximum length of the <text> field. Note: The length may not be available while SIM storage is selected. If storage does not offer format information, the format list contains empty parenthesizes.
> Syntax

> Test Command AT^SPBW=?
> Response(s)
> ^SPBW: (1-<maxloc>), <nlength>, (list of supported <type>s), <tlength>
> OK
> ERROR
> +CME ERROR

> Write Command AT^SPBW=[<location>][, <number>[[, <type>][, <text>]]]
> Response(s)
> ^SPBW: <location>
> OK
> ERROR
> +CME ERROR

> Reference(s) |  | PIN |  | ASC0 | ASC1 | USB | MUX1 | MUX2 | MUX3 |  |  | Charge | Q | Last
> GSM 07.07, GSM 04.08 |  | + |  | + | + | + | + | + | + |  |  | - | + | -

> Parameter Description

> <location>(num)

> Location number within phonebook memory. The maximum range supported by each storage type is indicated in the test command response. If <location> is not given, the first free entry will be used.
> If <location> is given as the only parameter, the phonebook entry specified by <location> is deleted.

> <number>(str)

> Phone number in format specified by <type>. Parameter must be present, although it may be an empty string. Alphabetic characters are not permitted. <number> may contain dialstring modifiers "*", "#" or "+".
> If other printable non-alphabetic characters are used the entry needs to be saved with <type>=209. Otherwise, if <type>=209 is not used any non-digit characters other than "*", "#" or "+" will be removed from the string and only accepted modifiers from the GSM alphabet will be saved.
> A <number> saved with <type>=209 requires double memory. In order to fit into a standard location, the number needs to be reduced to a maximum length of <nlength>/2, including all digits and dial string modifiers. Extended locations may be used as stated below for <nlength>.

> <type>(num)

> Type of address octet, which defines the used type of number (ton) and the numbering plan identification (npi).
> Please consider that for types other than 129 or 145 dialing from phonebook with ATD><mem><n> is, depending on the network, not always possible (refer GSM 04.08 subclause 10.5.4.7 for details).
> If <type> is not specified the unknown <type>=129 is used. If <number> contains a leading "+" <type>=145 (international) is used.
> Supported values are:
> 145
> Dialing string <number> includes international access code character "+"
> 161
> National number. The network support for this type is optional.
> 209
> Dialing string <number> will be saved as ASCII string.
> This is the default value, if <type> is not specified explicitly and characters other than "*", "#" or "+" are included in <number>.
> Note that phonebook entries saved with this type cannot be dialed.
> 255
> Dialing string <number> is a command to control a Supplementary Service, i.e. "*", "#" codes are contained. Network support of this type is optional.
> 129
> Unknown number. If <type> is unknown and the <number> contains a leading "+", <type>=145 (international) is used.

> <text>(str)(+CSCS)

> Text assigned to the phone number. The maximum length of this parameter is given in the test command response <tlength>. When using an ASCII terminal, characters which are coded differently in ASCII and GSM have to be entered via escape sequences as described in Section 1.5, Supported character sets.

> <maxloc>(num)

> Maximum number of locations supported by the currently selected storage. For phonebooks located on SIM, this value varies depending on the SIM card. See AT+CPBS for typical values.

> <nlength>(num)

> Maximum length of phone number for "normal" locations. Depending on the storage, a limited number of locations with extended memory is available per phonebook. These locations allow storing numbers with twice the standard length, which is 2*<nlength> digits for normal numbers, but only <nlength> digits for numbers saved with parameter <type>= 209. If all extended locations of the selected phonebook are used up, then any attempt to write a number which requires extended memory will be denied with CME ERROR 260: INVALID DIAL STRING.

> <tlength>(num)

> Maximum length of <text> assigned to the telephone number. The value indicated by the test command is given in octets. If the <text> string is given in GSM characters, each character corresponds to one octet. If the <text> string is given in UCS2, the maximum number of characters depends on the coding scheme used for the alpha field of the SIM. In the worst case the number of UCS2 characters is at least one less than half the number of GSM characters.
> For a detailed description please refer to GSM 11.11, Annex B [26].
> Note

> • | Users should be aware that when using this AT command quickly after SIM PIN authentication the SIM data may not yet be accessible, resulting in a short delay before the requested AT command response is returned. See Section 23.1, Restricted access to SIM data after SIM PIN authentication for further detail.

> Examples

> EXAMPLE 1 | Make a new phonebook entry at the first free location (here location 3)

> AT^SPBW=,"+431234567",145,"international"
> ^SPBW: 3

> EXAMPLE 2 | Delete entry at location 3

> AT^SPBW=3

> EXAMPLE 3 | The following examples are provided to illustrate the effect of writing phonebook entries with different types of dial string modifiers in <number>

> AT^SPBW=5,"12345678",,"Arthur"
> ^SPBW: 5
> AT^SPBW=6,"432!+-765()&54*654#",,"John"
> ^SPBW: 6
> AT^SPBW=7,"432!+-765()&54*654#",129,"Eve"
> ^SPBW: 7
> AT^SPBW=8,"432!+-765()&54*654#",145,"Tom"
> ^SPBW: 8
> AT^SPBW=9,"432!+-765()&54*654#",209,"Richard"
> ^SPBW: 9

> EXAMPLE 4 | Read phonebook entries from locations 5 - 9 via AT+CPBR

> +CPBR:5,"12345678",129,"Arthur"
> +CPBR:6,"432!+-765()&54*654#",209,"John"
> +CPBR:7,"432+76554*654#",129,"Eve"
> +CPBR:8,"+432+76554*654#",145,"Tom"
> +CPBR:9,"432!+-765()&54*654#",209,"Richard"