cFos saves MSNs and subaddresses in registers &A0 to &A9. The value set for the &E register determines which MSN is being used for outgoing calls. For instance, "AT &E3" would designate the entry in register &A3 as the MSN and/or subaddress for outgoing calls.
Setting info elements:
cFos checks first if a number contains an '@' (e.g., ATD 123456@7890). In this example, "123456" would be the call number and "7890" the subaddress. In case the dialed number contains no '@,' cFos checks the value of register S115, which determines how many of a number's digits (counting from right to left) will be used for the subaddress. Thus, you could also enter ATS115=4 D 1234567890 and would end up with the same results as above. If neither '@' nor register S115 are set, cFos assumes the value of string register &S11 is the subaddress.
Setting string register &S10 enables switching between registers &A0 to &A9 for use as MSN or subaddress. If no value has been entered for &S10, &A0 to &A9 are considered MSNs and are coded correspondingly (as calling-party number), while string register &S12 contains the calling subaddress. If you set &S10 to your own phone number, &A0 to &A9 are defined as calling subaddresses and &S10 as calling-party number.
cFos handles these by adding existing calling subaddresses to the calling-party number. Similar to the procedure used for outgoing calls, string register &S10 determines what incoming calls are accepted and which MSN is used.
Again, &A0 to &A9 are responsible for checking MSNs and subaddresses. Which of these registers are actually used to this end is in turn determined by what value is entered in the &Lxxx parameter. For example, AT &L247 would activate registers &A2, &A4, and &A7. In case no registers are specified, cFos will "listen" to every MSN and subaddress.
If you set &S10 to your own phone number, cFos checks whether the number called is the same. In case of a match, cFos will then compare whatever subaddress there may be with the values for registers &A0..&A9. If this checks out as well, the call is shown on the respective MSN. Should no such subaddress exist, a match between the number called and the value of string register &S10 will still suffice to have cFos display the call on MSN 0.
If string register &S10 is empty, bit 2 of register S74 determines whether only the number called or a number including specific subaddresses will be compared to the values entered for registers &A0 to &A9 (S74.2=0). In effect, this lets you decide if you want to accept calls through a combination of MSNs and subaddresses or not.
Note:
You can select how protocols are selected for incoming calls that carry no specific service signalisiation.
Use S76=0 to use X.75. Set S76=1 to use the protocols which are selected for outgoing calls. Use S76=2 to enforce the outgoing protocols even if service signalling elements exist for the incoming call (default is '0').
If bit 7 of the first byte == 1, cFos assumes this defines the type of subaddress. Otherwise, cFos uses either "user-specified" or "user-specified ATM endsystem" subaddress types, handling them identically for incoming calls. 'NSAP' can be used for signal generation on outgoing calls. However, cFos will ignore this subbadress type for MSN selection.
Note: Typically, the German Telekom relays only subaddresses for the calling party. By contrast, transfer of called-party subaddresses must be activated separately and is subject to a surcharge. That is why if register S74.3=1 has been set cFos also uses the calling-party subaddress as the called-party subaddress.
Note: In case there is no info element given at all (i.e., neither number nor subaddress have been entered), cFos uses the first MSN you configure under &A0 to &A9. If you want cFos to reject all calls with no info elements (e.g., from Globalcall in Austria), you should enter ATS74.4=1.